c語(yǔ)言函數(shù)形參可有可無(wú)嗎 c語(yǔ)言函數(shù)形參可以是數(shù)組嗎

誰(shuí)能詳細(xì)解釋一下C語(yǔ)言函數(shù)中的無(wú)參、有參、形參、實(shí)參,要簡(jiǎn)單易懂!謝謝!

在C語(yǔ)言中,函數(shù)的無(wú)參用關(guān)鍵字用void表示,如果一個(gè)函數(shù)的參數(shù)為void,當(dāng)我們調(diào)用此函數(shù)并給它傳遞一個(gè)參數(shù)時(shí),編譯器會(huì)給出錯(cuò)誤的警告,因?yàn)槟惆褏?shù)傳遞給了一個(gè)不接受參數(shù)的函數(shù)。 例: int func(void) { ... } int main(void) { func(5) ; /*It will cause an error .*/ ... return 0 ; } 這里注意一點(diǎn),在C語(yǔ)言中(而不是C++中),如果函數(shù)的參數(shù)什么也沒(méi)有,如int func(),那么此時(shí)你調(diào)用這個(gè)函數(shù)的時(shí)候放不放參數(shù)編譯器都不會(huì)給出警告,編譯器會(huì)認(rèn)為它是可有可無(wú)的,但這不是一個(gè)好方法,如果函數(shù)不需要任何參數(shù),那一定要顯式的把void加到參數(shù)列表里。 參數(shù)是什么呢,比如f(x) = 5x + 3 ;這里的x就是參數(shù)(可理解為做為參照的數(shù)),是形參,f(5)會(huì)得出一個(gè)值,f(10)又會(huì)得出一個(gè)值(顯然這是個(gè)雙射函數(shù),呵呵),那么這里的5 , 10都是實(shí)參(實(shí)際傳遞的參數(shù)),實(shí)參會(huì)替換形參的位置。 如: int func(int a , int b) { return a + b ; } 其中a , b是形參,調(diào)用時(shí) func(5,6) ; 那5 , 6就是實(shí)參,函數(shù)得到實(shí)參后會(huì)替換原來(lái)形參的位置,相當(dāng)于將5和6相加并返回結(jié)果。

目前創(chuàng)新互聯(lián)公司已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、環(huán)翠網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

C語(yǔ)言的函數(shù)名后有一對(duì)圓括號(hào),括號(hào)內(nèi)有函數(shù)參數(shù),但參數(shù)可有可無(wú).

這是C的語(yǔ)法規(guī)定的,函數(shù)名的后面一定要帶括號(hào)。但括號(hào)里面不一定帶有參數(shù)。這要根據(jù)你的函數(shù)是否需要參數(shù)接口而定,像main()這個(gè)入口函數(shù)它就不需要用戶傳遞任何參數(shù)給它,所以就沒(méi)有提供參數(shù)接口(其實(shí)main是有帶有參數(shù)接口的,用來(lái)存放命令行的參數(shù),原型請(qǐng)自己在網(wǎng)上找)。而average函數(shù)是一個(gè)求平均數(shù)的函數(shù),試問(wèn)一下,如果你告訴系統(tǒng)你要對(duì)那些數(shù)求平均數(shù),你說(shuō)系統(tǒng)有這么神奇知道想求哪些數(shù)的平均數(shù)嗎?明顯是不可能的,那么要怎么讓系統(tǒng)知道你想求的數(shù)呢,那就要靠參數(shù)傳遞來(lái)實(shí)現(xiàn)。

C語(yǔ)言中定義函數(shù)時(shí),什么時(shí)候必須定義形參,什么時(shí)候可以省略,求指點(diǎn)~謝謝啦

函數(shù)聲明時(shí)只需寫出形參類型。

函數(shù)定義時(shí)必須寫出形參類型和變量名。

C語(yǔ)言中的標(biāo)準(zhǔn)函數(shù)printf便使用這種機(jī)制。在聲明不確定形參的函數(shù)時(shí),形參部分可以使用省略號(hào)“…”代替。“…”告訴編譯器,在函數(shù)調(diào)用時(shí)不檢查形參類型是否與實(shí)參類型相同,也不檢查參數(shù)個(gè)數(shù)。

擴(kuò)展資料

示例

例如:

void ConnectData(int i,...)

在上面的代碼中,編譯器只檢查第一個(gè)參數(shù)是否為整型,而不對(duì)其他參數(shù)進(jìn)行檢查。

對(duì)于可變參數(shù)的函數(shù),需要進(jìn)行特殊的處理。首先需要引用 stdarg.h 頭文件,然后利用va_list類型和va_start、va_arg、va_end 3個(gè)宏讀取傳遞到函數(shù)中的參數(shù)值。

這幾個(gè)宏的定義如下(在 ANSI C 中):

type va_arg( va_list arg_ptr, type );

void va_end( va_list arg_ptr );

void va_start( va_list arg_ptr, prev_param )。

c語(yǔ)言中函數(shù)聲明的時(shí)候可以省略形參嗎?

形參名可以省,形參的類型不要??;如int fact(int);以便編譯器識(shí)別形參和實(shí)參的類型是否匹配。

新聞標(biāo)題:c語(yǔ)言函數(shù)形參可有可無(wú)嗎 c語(yǔ)言函數(shù)形參可以是數(shù)組嗎
文章位置:http://muchs.cn/article0/dohoooo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站營(yíng)銷標(biāo)簽優(yōu)化、網(wǎng)站策劃、小程序開(kāi)發(fā)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)