學習每一個編程語言都是從 "Hello world!" 開始的,這好像就是編程界一條不成文的規定一樣。 在這篇文章中,我將教大家編寫一個可以輸出 "Hello world!" 的程式。 示常式序:1 #include <stdio.h>//Include a header 1 #include <s ...
學習每一個編程語言都是從 "Hello world!" 開始的,這好像就是編程界一條不成文的規定一樣。
在這篇文章中,我將教大家編寫一個可以輸出 "Hello world!" 的程式。
在vs2019中創建解決方案和項目:
運行vs2019,選擇“創建新項目”->“空白解決方案”->“下一步”->填寫項目名稱,就是解決方案的名稱,我寫的是“c_learn”->填寫路徑,可以理解為“工作區域”,這裡建議新建一個文件夾來專門存儲你的各種解決方案->“創建”。
接下來在右側“解決方案管理器”中右鍵解決方案那一項->“添加”->“新建項目”->“空項目”->“下一步”->填寫項目名稱,一邊就是你那個輸出程式的名字,我這裡填寫的是“0x01HelloWorld”->填寫位置,這裡一般不用改->“創建”。
至此,解決方案和項目已經創建好了。但是我們還是不能開始編寫代碼,因為我們還需要進行一些配置以及添加源代碼文件:
在右側“解決方案管理器”中右鍵你剛剛創建的項目->“屬性”->“配置屬性”->“高級”->設置“字元集”為“使用多位元組字元集”->“常規”->“輸出目錄”->“瀏覽”->在你的解決方案文件夾中新建一個文件夾專門用來存儲編譯好的程式->“確定”。
註:這裡修改輸出目錄是為了讓輸出目錄保持一致,因為在vs中切換“x86”、“x64”、“Debug”以及“Release”等選項時,輸出目錄會發生變化,這回占用更多的空間,並且可能會導致一些意想不到的問題。當然,如果你不想該,也沒有什麼大問題。
然後在右側“解決方案管理器”中右鍵“源文件”選項->“添加”->“新建項”->“c++文件(.cpp)”->設置名稱,我寫的是“entry.cpp”->位置一般不用改->“添加”。
現在,我們就可以開始真正的開始寫程式了。
示常式序:
1 #include <stdio.h>//Include a header 2 #include <windows.h> 3 4 //Entry of the program 5 int main(int argc, char** argv) 6 { 7 printf("Hello world!");//Print a String on the screen 8 system("pause");//Pause the program 9 return 0;//Return a value to the system 10 }
在編譯器中輸入這些代碼後,點擊“編譯”按鈕,就會在工程所在文件夾下生成一個可執行文件(.exe),雙擊運行即可。
註:在vs中,可以直接按ctrl+f5運行。
對於初學者來講,對這段代碼肯定是會有很多不懂的地方。但是,我們先讓程式跑起來,看看是什麼樣子再說。下麵我會對這些代碼一一解釋。
解析:
1:
#include <stdio.h>//Include a header #include <windows.h>
這句話是什麼意思呢?從字面意思上來講,include在英文中是“包含”的意思。所以,這句話的作用是告訴編譯器講一個頭文件包含到我們的代碼裡面。這個頭文件呢,通常以(.h)結尾,他其實呢跟我們的源代碼文件(.c)差不多,都寫著代碼。所以這一句就可以說是把別人寫好的代碼白嫖了過來給我們自己用。有關include的知識先說到這裡,之後在講預編譯的時候再往細了講。
那麼這個stdio.h又是什麼東西呢?其實,它就是我們上文中提到的頭文件。其中stdio是Standard Input and Output的縮寫,意思為標準輸入輸出。所以,只有使用它,我們才能進行輸入輸出操作,在這個例子中就是在屏幕上顯示一串字。
另一個windows.h提供了在windows系統中所要使用到的一些功能。
後面的//的意思是註釋,就是//以及它後面的所有字元(但是不包括下一行)都是不會影響程式的運行的,註釋是為了提高程式的可讀性,說白了就是讓你以及別人能儘可能看懂你的程式。在c語言中,註釋還有另一種寫法:
1 #include <stdio.h>/*Before me is the include sentence 2 I will not affect the program 3 After me is the program*/ 4 int main(int argc, char **argv) 5 {...}
意思就是從/*到*/之間的都是註釋(包含/*和*/)。
註:在vs中,選中代碼後先按下ctrl+k再按下ctrl+c即可註釋掉選中代碼;選中後先按下ctrl+k再按下ctrl+u即可取下註釋選中的代碼。
2:
int main(int argc, char **argv)
這個東西我們先不細講,在之後講了數據類型之後再來細講argc和argv是什麼東西。現在我們需要知道的是,這個東西叫main函數,是這個程式的入口,也就是一個程式開始的地方。因此本程式會從main函數的第一行開始執行。
3:
printf("Hello world!");//Print a String on the screen
printf是一個字元輸出函數,在這裡它會吧括弧裡面的字元串輸出到屏幕上。
註意:在c語言以及c++中,字元串必須用一對雙引號括起來;用單引號只能括起來一個字元。
4:
system("pause");//Pause the program
這句話的作用是將程式暫停住。
我們知道,在程式執行完輸出函數後,它會接著執行下一條語句。如果沒有本條語句,那麼接下來執行的將會是:
return 0;//Return a value to the system
這條語句會向系統返回一個值,並且告訴系統:“我已經運行完畢,可以退出”,然後系統就會關掉你的程式。
這麼一來,字元串剛剛被顯示出來,視窗就被關閉了(嚴謹一點來說就是程式退出了),我們就沒有時間去看到輸出的字元串了。(電腦的運行速度是很快的)
所以,如果能將程式暫時暫停住,我們就有時間看到輸出的字元串了。
註:在某些編譯器中,程式會在退出前暫停住,所起在那些編譯器中,就不需要人為的暫停程式。但是,為了保險起見,我還是建議大家加上這句話。
提示:
如果顯示編譯失敗,請檢查以下列出來的可能原因:
1:忘記打分號;
2:使用了中文字元;
3:把0打成了o;
4:該空格的地方沒有空格;
5:括弧沒有成對出現。