基本功無論在什麼領域內都有著不容忽視的地位,想要學好編程,並將程序運動到實際當中去一定要學好基礎,學好C語言基礎,打下紮實的編程基本功,我們將帶你走進編程的世界。
我是先完成的《C語言深處》再寫的《C語言基礎》。很多朋友看過了《C語言深處》後向我反映:直接看這個系列覺得很難,不好理解。並希望我能編寫一個關於C語言編程基礎的系列文章。所以我後來才再寫的《C語言基礎》,這個系列借鑑了很多優秀的C語言教材,比如Stephen Prata的《C Primer Plus》和Brian W. Kernighan & Dennis M. Ritchie 的《The C Programming Language》、譚浩強的《C語言程序設計》等等。這些優秀的書籍讓我對C語言的學習有很大幫助。我也希望通過我自己的理解和消化,把這些知識分享給有這方面興趣的朋友們。
我個人有一個習慣,喜歡把複雜的問題簡單化,而不喜歡將一些簡單的問題描述的極其複雜難懂。《C語言基礎》這個系列是面向一些C語言的初學者,所以裡面的內容比較淺顯易懂,很多問題和知識點並沒有深入去挖掘,也就是說這個系列是一個入門級教材,幫大家快速的找到一個學習C語言的方向。
我們首先來看一個最簡單的C程序——Hello World! 打開一個文本編輯器輸入以下內容,並保存為a.c
#include <stdio.h>
main()
{
printf("Hello World!\n");
}
然後打開你的命令行,執行下面命令(在Linux作業系統中,如果大家對Linux不熟悉請參見《一點一滴學Linux》)對這個原始碼文件進行編譯:
gcc a.c
執行上面命令後,你會看到一個a.c文件被編譯成了一個a.out的輸出文件,這是一個可執行文件,執行a.out這個程序就可以看到它的運行結果:
./a.out
Hello World!
怎麼樣?這就是我們編寫的第一個C語言程序,這也是最簡單的一個程序,它只有一個功能,就是顯示一些文字,文字的內容就是「Hello World!」,下面我們分別來看一下這段代碼中各項內容的作用。首先來看一下
#include <stdio.h>
其中include是一個C語言的關鍵字它表示這段代碼包含另一個文件,這個文件名用<>說明,叫作stdio.h這個文件是一個C語言的頭文件,它定義了C語言中的標準輸入輸出函數,我們的代碼使用include包含了stdio.h這個頭文件之後,就可以使用標準函數了,例如代碼中的printf函數。在include關鍵字前還有一個#號,它表示的是一個宏(關於宏我們會在後續章節中講述),配合include為固定寫法,繼續往下看代碼:
main()
{
}
這裡的main()表示的是一個函數,它是由一個名稱main、一對小括號()和一對大括號{}所組成的,main是這個函數的函數名稱,簡稱函數名。小括號()裡面的內容是這個函數的參數,而大括號裡的內容就是這個函數的執行內容,也就是我們常說的函數體。而函數名為main是C語言規定的一個主函數,編譯器在對C語言代碼做編譯時,會找到代碼中被定義成main的函數,將其編譯為函數的執行入口,也就是程序運行開始的地方。main函數的名字、參數和返回值都是固定的,關於函數的內容我們會在後續章節中學習。在這裡我們只需要知道main函數是一個固定名稱的函數,它是程序執行的入口即可。事實上main函數是一個程序的唯一入口,整個程序中只能定義一個、且必須定義一個main函數。main函數的完整形式為:
int main(int argc, char *argv[])
{
return 0;
}
關於main函數的參數與返回值我們可以暫時忽略,不使用參數和返回值的main函數通常也可以被編譯器所識別,這樣簡化的函數更適合初學者理解。
接下來看一下main函數體中的執行代碼:
printf("Hello World!\n");
這裡的代碼表示的是程序調用(執行)一個函數這個函數的名稱為printf。我們只需要調用這個函數,它就會在標準輸出上顯示出字符串,而小括號中的"Hello World!\n"表示的是printf這個函數執行時需要的參數,也就是Hello World!這段文字,而\n表示的是回車符號。最後一個分號;是必需要寫的,它表示這一個語句結束,也就是執行printf這個結束。printf(params);這樣的形式表示的是調用一個函數,讓這個函數執行,並向其傳入一個想要顯示的內容,當程序執行這段代碼時,printf就會根據需在標準輸出中要顯示出結果。需要注意的是:在C語言裡所有的字符串都需要用雙引號括起來,例如"Hello"、"World"、"Hello World!"等等。另外所有的關鍵字均是英文字母,標點符號都是英文的。
這裡我們需要說的是,想要學好編程,就一定要動手編寫代碼並執行程序,只學理論不手動編寫代碼,是學不好編程的。所以希望讀者能夠邊學習,邊動手,學好C語言基礎。
關注編程外星人
加好友拉進技術交流群,驗證內容:
我想加入編程技術交流群