在信息化、智能化的世界里,可能很早很早我們就聽(tīng)過(guò)許多IT類(lèi)的名詞,C語(yǔ)言也在其中,我們侃侃而談,到底C程序是什么樣子?讓我們先看簡(jiǎn)單的一個(gè)例子:
#include<stdio.h> /*引入頭文件*/ int main(void) /*一個(gè)簡(jiǎn)單的C程序*/ { int number; /*定義個(gè)名字叫做number的變量*/ number=2014; /*給number賦一個(gè)值*/ printf("Hello ! I am dotcpp.com\n"); /*調(diào)用printf()函數(shù)*/ printf("This year is %d\n",number); return 0; }
這個(gè)簡(jiǎn)單的程序作用是向屏幕上輸出兩句話,如果想看到實(shí)際的運(yùn)行結(jié)果的話,我們需要使用編譯器編譯這段代碼然后運(yùn)行最后的可執(zhí)行程序,如果順利話,將看到運(yùn)行結(jié)果為:
Hello ! I am dotcpp.com This year is 2014
怎么樣?一切如我們所預(yù)料吧!
可是...為什么...
也許您還有很多個(gè)疑問(wèn),很多個(gè)為什么,比如什么頭文件、main、int、\n、%d都是什么東西?都是干什么用的?
以及您可能感覺(jué)為什么寫(xiě)的這么奇怪?
不用著急~好,讓我們一起先來(lái)大致看一遍。
#include<stdio.h> /* 包含另一個(gè)文件 */
本行代碼將告訴編譯器引入一個(gè)stdio.h的文件(就像我們電腦中的123.txt一樣)的全部?jī)?nèi)容。stdio.h文件是所有C語(yǔ)言編譯器的標(biāo)準(zhǔn)部分,用來(lái)提供輸入和輸出的支持。
int main(void) /*主函數(shù)*/
C程序規(guī)定一個(gè)程序中有一個(gè)或多個(gè)函數(shù),他們是C程序的基本模塊。但必須有且只有一個(gè)main函數(shù)。因?yàn)镃程序的執(zhí)行將從main函數(shù)開(kāi)始,到main函數(shù)結(jié)束而停止。
再回頭看看我們的這個(gè)簡(jiǎn)單實(shí)例吧,他只有一個(gè)名為main的函數(shù),名字后面的圓括號(hào)()表明main()是一個(gè)函數(shù)的名字,括號(hào)里面的void表示空的,這里指不接受任何參數(shù)。而前面的int表示main()這個(gè)函數(shù)在執(zhí)行完成后返回一個(gè)整數(shù)(int表示整數(shù),即英文integer的縮寫(xiě))。有關(guān)更詳細(xì)的知識(shí),我們會(huì)在后面進(jìn)入更深入的講解。而此時(shí),我們只需要把int和void看作是用來(lái)定義main()函數(shù)的標(biāo)準(zhǔn)即可。
/*一個(gè)簡(jiǎn)單的C程序*/
這不是代碼,是一句注釋?zhuān)?hào)/*和*/中包含的話不被編譯器編譯處理,而是給我們看的,幫助我們理解程序,你可以認(rèn)為是筆記~
{
這個(gè)開(kāi)始花括號(hào)標(biāo)志著函數(shù)的開(kāi)始,而后面的結(jié)束花括號(hào)}則標(biāo)志著函數(shù)的結(jié)束。
int number;
這個(gè)語(yǔ)句表明告訴編譯器,我們將使用一個(gè)叫做number的變量,并且它是int(整數(shù))類(lèi)型。
number=2014;
這條語(yǔ)句表示,給number這個(gè)變量賦值為2014。
printf("Hello ! I am dotcpp.com\n");
這是一個(gè)函數(shù)調(diào)用語(yǔ)句,在屏幕上顯示“Hello ! I am dotcpp.com”,\n表示讓光標(biāo)另起一行。這里的printf()是C標(biāo)準(zhǔn)庫(kù)里的一部分。用術(shù)語(yǔ)來(lái)講,它是一個(gè)函數(shù)。在一個(gè)程序中使用另一個(gè)函數(shù)(如我們?cè)趍ain()函數(shù)當(dāng)中調(diào)用了printf()函數(shù)),術(shù)語(yǔ)稱(chēng)之為調(diào)用了一個(gè)函數(shù)。
printf("This year is %d\n",number);
又是一個(gè)函數(shù)調(diào)用語(yǔ)句。但不同的是并不是輸出“This years is %d”換行,而是輸出"This year is 2014"換行,此刻的%d表示輸出number值的位置和形式。
return 0;
C函數(shù)可以給它的使用者提供或返回一個(gè)數(shù)值。此時(shí) 我們只需理解這一句是用來(lái)滿足C標(biāo)準(zhǔn)的要求而已。
}
結(jié)束的花括號(hào),函數(shù)名后 { 和 } 之間的部分稱(chēng)之為函數(shù)體。
好的,這就是我們的第一個(gè)簡(jiǎn)單的C程序以及其簡(jiǎn)單的介紹,希望大家好好理解并消化,更詳細(xì)的講解我們將會(huì)在下節(jié)展開(kāi)!
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程
只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程