tft每日頭條

 > 圖文

 > c語言中void函數什麼時候返回

c語言中void函數什麼時候返回

圖文 更新时间:2024-12-16 18:33:27

剛開始接觸C語言的時候,會遇到很多語法、運算符、函數等等問題,可能對于剛剛上手的朋友來說不太能夠理解。所以今天通過編寫代碼,來分析一下每行代碼的作用,幫助大家理解。


首先,我們先來寫一段簡單的代碼。代碼要求也很簡單:創建一個整形變量,并且給其賦值,最後顯示這個變量的值。

#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; }

看了這段代碼之後,如果認為屏幕上能夠打印東西,說明我們的理解是對的。所以運行一下程序,來看一看結果。

c語言中void函數什麼時候返回(C語言幹貨2)1

運行結果

運行之後可以看到程序輸出了兩行結果:

Is Lucy

I am 21 years old

雖然程序沒有問題,但是不理解的朋友可能會有以下幾點問題:

1:\n 和 %d 是什麼意思

2:printf 打印了三個,為什麼 Is 和 Lucy 合并到一起了

3:main 括号當中的 void 是幹嘛用的


先不要着急,我們先來了解一下每行代碼的作用。

#include <stdio.h>

告訴編譯器,把 stdio.h 這個頭文件包含到當前程序當中。頭文件中包含了我們的代碼所要支持的文件。

int main (void)

函數名main()是一個函數名,int表示main()函數返回一個整數,void表示main不帶任何參數。

int demo;

聲明一個變量demo,該變量是一個整形變量。

demo = 21;

給demo賦值,把值21賦值給demo,這樣demo就等于是21。

printf("Is "); printf("Lucy\n");

調用 printf() 函數

第一個printf()函數在我們的計算機屏幕上顯示 Is ,(is後面我打了一個空格)光标停留在同一行。

第二個printf()函數顯示的Lucy 緊跟在is後面,\n是告訴我們的計算機要另起一行,光标就移動到下一行。

printf("I am %d years old \n",demo);

同樣也是調用 printf() 函數。不同的是,它把 demo 的值 21 一起打印出來,%d就是告訴計算機是以那種形式輸出demo的值的。

return 0;

return 是給調用方返回一個值,這裡可以看作是結束main函數所必須的要求

}

右花括号,表示函數體的結束


理解了每行代碼之後,回想一下剛剛的幾個問題:

1:\n 和 %d 是什麼意思

2:printf 打印了三個,為什麼 Is 和 Lucy 合并到一起了

3:main 括号當中的 void 是幹嘛用的

第一個問題:

顯然 \n 是告訴我們的計算機要另外起一行;

%d 呢是告訴我們的計算機輸出的值是以整形的方式輸出,%d 呢隻是衆多的形式中的一種,還有很多像是%f、%a、%p....等等衆多形式。這裡呢先不說那麼多,以後用到再給大家科普,當然網上的資源也很多,大家可以去網上提前科普一下。

第二個問題:

其實第二個問題在第一個問題的時候就已經給大家解答了。

執行第一個 printf 的時候,因為 Is 的後面沒有加 \n ,那麼光标默認在第一行;

到執行到第二個 printf 的時候 Lucy 就直接跟在 Is 後面了;

到執行到第三個 printf 的時候時,因為 Lucy 後面加了一個 \n ,所以光标到第二行,所以第三個 printf 的内容是在第二行打印出來的。

第三個問題 *

這裡打個星号,是因為這個問題對剛剛開始學的朋友來說會有一些難理解。如果你能夠理解,就忽略這個 * 号。

void 其實就是表示 main() 函數的參數是空的,就是沒有的,如果你給 main() 函數傳遞參數的話,那麼編譯就會出錯。

我們都知道 return 是一個返回函數,這裡給我們的 return 返回的值是0,就是返回的是空的,所以這就是為什麼在程序的最後面要加一個 return 0 ;的原因了。

當然,如果沒有 void 的話,不管你傳什麼參數進去,都不會報錯的。隻不過就是不會處理這個參數而已。


那麼本期的C語言幹貨就先分享到這裡,歡迎大家一起來探讨。

我是Lucy,喜歡分享實用的幹貨。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved