国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C語言入門教程-函數(shù)

函數(shù)

大多數(shù)編程語言都支持定義某種形式的函數(shù)。使用函數(shù)可以將一個大程序分解為小的代碼塊并分別命名,然后這些命名的代碼塊就可以在整個程序中重復(fù)使用了。函數(shù)輸入?yún)?shù)并返回一個結(jié)果。C函數(shù)可以輸入的參數(shù)個數(shù)沒有限制。一般來說,對于編譯器而言,只要在調(diào)用函數(shù)以前事先聲明函數(shù)名稱,則各函數(shù)在程序中的順序并不重要。

我們已經(jīng)討論過一些有關(guān)函數(shù)的內(nèi)容了。前面遇到的rand函數(shù)幾乎是最簡單的函數(shù)了。它不接受參數(shù)并返回一個整數(shù):

int rand()/* 摘自 K&R   - 生成一個0-32767之間的隨機(jī)數(shù)字。*/{rand_seed = rand_seed * 1103515245 +12345;return (unsigned int)(rand_seed / 65536) % 32768;}

int rand()這些程序定義了rand函數(shù),還指明rand沒有輸入?yún)?shù)并返回一個整數(shù)。此函數(shù)沒有局部變量,但如果需要的話,局部變量會緊接著打開的{開始。(C 允許您在任何 { 后面聲明變量,這些變量一直存在,直到程序執(zhí)行至那個匹配的 } 為止,此后即不復(fù)存在。因此函數(shù)的局部變量在遇到函數(shù)中匹配的 } 時就消失了。在其生存周期內(nèi),局部變量被保存在系統(tǒng)棧上。)請注意第一行的()后面沒有;。您若不小心加上了分號,編譯器會給出一大堆莫名其妙的錯誤信息。另外還要注意即使當(dāng)函數(shù)沒有參數(shù)時也要使用()。括號告訴編譯器您在聲明一個函數(shù)而不是簡單地聲明一個int類型。

對于任何要返回結(jié)果的函數(shù)來說,return語句是不可或缺的。它指明函數(shù)要返回的值并使函數(shù)立即退出。因此您可以在函數(shù)中放置多個return語句作為函數(shù)的多個退出點(diǎn)。若函數(shù)中沒有return語句,則函數(shù)在執(zhí)行到 } 時退出并返回一個隨機(jī)值(這時很多編譯器會發(fā)出警告)。C中的函數(shù)可以返回任何類型的值:包括int、float、char、結(jié)構(gòu)體等等。

調(diào)用rand函數(shù)的方式有許多種。例如:x=rand();。此語句中x被賦值為rand的返回值。注意,在函數(shù)調(diào)用中即使沒有參數(shù)也必須使用(),否則x將被賦值為rand函數(shù)的內(nèi)存地址,而這通常并非您的本意。

也可以用這種方式調(diào)用rand:

if (rand() > 100)

或:

rand();

后一種方式中,rand函數(shù)被調(diào)用了,可是其返回值隨即被丟棄。您可能不會以這種方式使用rand,但很多函數(shù)會返回某種錯誤代碼作為調(diào)用結(jié)果,而您又不關(guān)心這些錯誤代碼的話(如您知道不可能發(fā)生錯誤),就可以用這種調(diào)用方式將其丟棄。

如果您不想返回任何值的話,函數(shù)可以使用void作為返回類型。例如:

void print_header(){printf("第一個程序\n");printf("作者 Marshall Brain\n");printf("版本 1.0, 發(fā)布于1991年12月26日\n");}

此函數(shù)沒有返回值??梢韵裣旅孢@樣調(diào)用:

print_header();

調(diào)用時必須加上(),否則函數(shù)不會被調(diào)用,即使此語句在很多系統(tǒng)上能通過編譯。

C函數(shù)可以接受任何類型的參數(shù)。例如:

 fact(int i){int j,k;j=1;for (k=2; k<=i; k++)j=j*k;return j;}

返回傳入的整型參數(shù)i的階乘。用逗號分隔多個參數(shù):

int add (int i, int j){return i+j;}

C語言經(jīng)歷了許多年的演變。有時您會看到用“舊式風(fēng)格”編寫的函數(shù)。以add為例:

int add(i,j)
int i;int j;{return i+j;}

您應(yīng)該能夠讀懂舊式代碼。它們在執(zhí)行上并無不同,只不過是另一種書寫格式罷了。編寫程序時應(yīng)該使用“新式風(fēng)格”(稱為ANSI C),把類型聲明寫在參數(shù)列表中;除非您要把代碼交付給只有“舊式”(非ANSI C)編譯器的人。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
第十四課 C51函數(shù)
函數(shù)
【嵌入式學(xué)習(xí)】Arm-elf-gcc編譯器函數(shù)調(diào)用規(guī)則 - zhangjun2915的日志...
超炫酷技巧!C語言代碼優(yōu)化的技巧
第八章 函 數(shù)
C語言程序設(shè)計案例式教程-第6章 函數(shù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服