C語言程式設計入門之--第三章編寫第一個C語言程式
導讀:一般學一門計算機語言的第一堂上機課(“上機”顧名思義,上計算機,機你太美),就是往螢幕輸出“hello world”,本章也不例外。
1.1 Hello,World!
這一節和讀者一起來編寫第一段C語言程式,過程詳細到令人髮指。
1.1.1 建立C語言原始碼檔案
開啟 Dev C++,在上方選單欄中選擇“檔案 --> 新建 --> 原始碼”,如圖3.1,
圖3.1 建立原始碼檔案
1.1.2 輸入一段程式碼
用鍵盤輸入以下程式碼,先輸入,等會再分析:
#include <stdio.h> void main() { printf("hello,world"); }
圖3.2 輸入第一段程式碼
1.1.3 檔案儲存
儲存到自定義的目錄下,給這個C語言程式的取名為helloworld.c,字尾為“c”,說明此檔案就為C語言程式檔案。
圖3.3 儲存為字尾為c的檔案
1.1.4 編譯執行
點選“執行 --> 編譯執行”,為什麼要編譯執行呢,根據不同作業系統,比如windows的可執行檔案字尾為"exe",所以編譯c語言檔案為可執行的exe檔案,這樣才能在windows下執行。
圖3.4 編譯執行程式碼
1.1.5檢視執行結果
圖3.5 執行結果
可以發現,在儲存helloworld.c的資料夾下面,多了一個helloworld.exe,這個就是編譯連結後生產的可執行檔案,一般電腦要關閉防毒軟體就能執行它了。
下一節會簡明的說一下這段程式的意思。
2.1 初識C語言程式碼
本節主要講解上一節寫的五行C語言程式。
#include <stdio.h> void main() { printf("hello,world"); }
下面就針對程式碼的每一行進行講解。
2.1.1 #,<>,(),{},"",;這些符號有什麼用?
首先我們得清楚一個概念,編譯器神通廣大!
看到這麼多符號,比如:#,<>,()......等等,先別緊張,它們都是給編譯器標識語句用的,這一小節先暫時不去考慮它們的意思,只要記住,編譯器有它識別的規範,這些都是規定好的,照做既可。
注意:咱們中國人一般吧"#"念做井號,外國人應該把它念做Sharp,不管它怎麼念,C語言要會寫會用即可,程式設計師一般話不多說,直接用程式碼說事。
2.1.2 #include <stdio.h>
C語言程式碼需要用到C庫裡面的功能的話,就需要申明標頭檔案,宣告標頭檔案的格式需要用到符號“#”,以及關鍵字include,然後把需要用到的標頭檔案放入<>符號中,比如本節用的<stdio.h>,就把標頭檔案stdio.h放入<>之中。
新手肯定要開始困惑了,啥是C庫?啥是“宣告”?標頭檔案又是什麼東東?為啥要用到"#"?那就由我來逐一解釋吧。
注意:如果解釋的不夠詳細,請在下發評論,筆者會重新修改這方面的解釋的,謝謝。
C庫與標頭檔案:C語言為了減輕程式設計師的工作量,提供了C庫。C庫裡面有好多好多功能,好多好多檔案。為了編譯速度快些,所以當程式設計師需要使用C庫的某些功能的時候,就需要新增相關標頭檔案來表明,不需要就不新增。比如我們用到的stdio.h這個標頭檔案吧,這個就是標準的C庫輸入輸出標頭檔案,相關功能下一小節詳細介紹。
注意:讀者暫時可以這麼理解,輸入就是接受鍵盤的輸入,輸出就是螢幕上輸出顯示。
宣告與#include:上述說過,當程式設計師需要使用C庫的某些功能的時候,就需要新增相關標頭檔案來表明,這個過程就是宣告,宣告標頭檔案用到識別符號#,然後再用到關鍵字include,這些都是C語言程式碼格式的規定,照著做就是了,以後程式碼寫多了也就漸漸明白了。
提示:可以知道include的直譯意思就是包含,包括。
2.1.3 printf("hello world");
上一小節說到stdio.h這個標頭檔案,是標準C庫的輸入輸出標頭檔案。我們已經聲明瞭這個標頭檔案,所以就可以使用標頭檔案裡所有的功能,其中一個就是printf功能。
注意:宣告標頭檔案辦法之前說過,這麼做:#include <stdio.h>
先直譯一下printf,print的意思就是列印,f的意思筆者認為是flow的縮寫,就是流,所以printf的意思就是列印流或者叫輸出流,最終輸出流輸出到顯示屏上顯示出來。
注意:流好比高山流水的水流,計算機程式設計裡面用流來表示要流過CPU的資料流,這裡的輸出流就是要輸出到顯示屏的資料流。如果比較拗口可以多讀幾遍,實在抱歉。
圖3.6 資料流
本節我們輸出到顯示屏上的文字是hello world,現在需要讀者開啟Dev-C++,開啟helloworld.c,把滑鼠移動到printf中,按下鍵盤“Ctrl”,會發現滑鼠顯示變成了手的形狀,點選滑鼠可以看到如下程式碼:
int __cdecl printf(const char * __restrict__ _Format,...);
看著似乎有點複雜呢,不急,本小節只需要知道printf的使用方法之一,輸出文字流即可,用法就是在printf後的括號裡面,新增雙引號“”,再把需要輸出的文字流放入雙引號裡面就行了,最後括號外面新增分號;即可:
printf("hello world");
讀者可以自行修改需要輸出到顯示屏的文字流,看看效果體驗一下吧。
2.1.3 void main()與{}
void是定義不需要返回值,為空的意思。
main是主函式。
()的意思等同於庫函式printf的(),用來輸入引數用的。
{}標識函式體的起始。
這裡涉及的返回值,函式,引數等知識,讀者先不用考慮,後面章節會逐一解釋,目前讀者只需要死記住,每次寫程式套用這個格式即可:
void main() { 所有程式內容寫在{}裡面 }
程式寫在大括號{}裡即可。
2.3 初識程式設計規範
寫程式的時候,每個人的品味不同,寫出來的程式風格也會有區別,但是大體上要參照一定的格式,為的是能讓一般程式設計師看的舒服。比如宣告標頭檔案的時候,#include <stdio>,在include後面會加一個空格,再比如main函式的函式體內,printf語句前會新增四個空格,也就是一個TAB按鍵空出的空間。
以後程式碼寫多了再好好規範一下,目前只是初識。如果本節還有什麼部分不清楚的,歡迎在評論區留言,謝