0x01 C語言-編寫第一個hello world


學習每一個編程語言都是從 "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:括號沒有成對出現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM