剛開始接觸C語言的時(shí)候,會遇到很多語法、運(yùn)算符、函數(shù)等等問題,可能對于剛剛上手的朋友來說不太能夠理解。所以今天通過編寫代碼,來分析一下每行代碼的作用,幫助大家理解。
首先,我們先來寫一段簡單的代碼。代碼要求也很簡單:創(chuàng)建一個(gè)整形變量,并且給其賦值,最后顯示這個(gè)變量的值。
#include <stdio.h>int main (void){ int demo; demo = 21; printf("Is "); printf("Lucy\n"); printf("I am %d years old \n",demo); return 0; }看了這段代碼之后,如果認(rèn)為屏幕上能夠打印東西,說明我們的理解是對的。所以運(yùn)行一下程序,來看一看結(jié)果。
運(yùn)行結(jié)果
運(yùn)行之后可以看到程序輸出了兩行結(jié)果:
Is Lucy
I am 21 years old
雖然程序沒有問題,但是不理解的朋友可能會有以下幾點(diǎn)問題:
1:\n 和 %d 是什么意思
2:printf 打印了三個(gè),為什么 Is 和 Lucy 合并到一起了
3:main 括號當(dāng)中的 void 是干嘛用的
先不要著急,我們先來了解一下每行代碼的作用。
#include <stdio.h>告訴編譯器,把 stdio.h 這個(gè)頭文件包含到當(dāng)前程序當(dāng)中。頭文件中包含了我們的代碼所要支持的文件。
int main (void)函數(shù)名main()是一個(gè)函數(shù)名,int表示main()函數(shù)返回一個(gè)整數(shù),void表示main不帶任何參數(shù)。
int demo;聲明一個(gè)變量demo,該變量是一個(gè)整形變量。
demo = 21;給demo賦值,把值21賦值給demo,這樣demo就等于是21。
printf("Is "); printf("Lucy\n");調(diào)用 printf() 函數(shù)
第一個(gè)printf()函數(shù)在我們的計(jì)算機(jī)屏幕上顯示 Is ,(is后面我打了一個(gè)空格)光標(biāo)停留在同一行。
第二個(gè)printf()函數(shù)顯示的Lucy 緊跟在is后面,\n是告訴我們的計(jì)算機(jī)要另起一行,光標(biāo)就移動到下一行。
printf("I am %d years old \n",demo);同樣也是調(diào)用 printf() 函數(shù)。不同的是,它把 demo 的值 21 一起打印出來,%d就是告訴計(jì)算機(jī)是以那種形式輸出demo的值的。
return 0;return 是給調(diào)用方返回一個(gè)值,這里可以看作是結(jié)束main函數(shù)所必須的要求
}右花括號,表示函數(shù)體的結(jié)束
理解了每行代碼之后,回想一下剛剛的幾個(gè)問題:
1:\n 和 %d 是什么意思
2:printf 打印了三個(gè),為什么 Is 和 Lucy 合并到一起了
3:main 括號當(dāng)中的 void 是干嘛用的
第一個(gè)問題:
顯然 \n 是告訴我們的計(jì)算機(jī)要另外起一行;
%d 呢是告訴我們的計(jì)算機(jī)輸出的值是以整形的方式輸出,%d 呢只是眾多的形式中的一種,還有很多像是%f、%a、%p....等等眾多形式。這里呢先不說那么多,以后用到再給大家科普,當(dāng)然網(wǎng)上的資源也很多,大家可以去網(wǎng)上提前科普一下。
第二個(gè)問題:
其實(shí)第二個(gè)問題在第一個(gè)問題的時(shí)候就已經(jīng)給大家解答了。
執(zhí)行第一個(gè) printf 的時(shí)候,因?yàn)?Is 的后面沒有加 \n ,那么光標(biāo)默認(rèn)在第一行;
到執(zhí)行到第二個(gè) printf 的時(shí)候 Lucy 就直接跟在 Is 后面了;
到執(zhí)行到第三個(gè) printf 的時(shí)候時(shí),因?yàn)?Lucy 后面加了一個(gè) \n ,所以光標(biāo)到第二行,所以第三個(gè) printf 的內(nèi)容是在第二行打印出來的。
第三個(gè)問題 *:
這里打個(gè)星號,是因?yàn)檫@個(gè)問題對剛剛開始學(xué)的朋友來說會有一些難理解。如果你能夠理解,就忽略這個(gè) * 號。
void 其實(shí)就是表示 main() 函數(shù)的參數(shù)是空的,就是沒有的,如果你給 main() 函數(shù)傳遞參數(shù)的話,那么編譯就會出錯。
我們都知道 return 是一個(gè)返回函數(shù),這里給我們的 return 返回的值是0,就是返回的是空的,所以這就是為什么在程序的最后面要加一個(gè) return 0 ;的原因了。
當(dāng)然,如果沒有 void 的話,不管你傳什么參數(shù)進(jìn)去,都不會報(bào)錯的。只不過就是不會處理這個(gè)參數(shù)而已。
那么本期的C語言干貨就先分享到這里,歡迎大家一起來探討。
我是Lucy,喜歡分享實(shí)用的干貨。
轉(zhuǎn)載請注明來自夕逆IT,本文標(biāo)題:《voidmain(C語言干貨2main函數(shù)當(dāng)中的void你真的理解嗎)》

還沒有評論,來說兩句吧...