凡不加返回值類型限定的函數(shù),就會被編譯器作為返回整型值處理。而不是當(dāng)做void
鼓樓ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
譬如你的void fun() 本身就沒有返回值 如果定義為fun() 雖然不給函數(shù)體內(nèi)加return語句 但照樣會返回一個整型數(shù) 因為什么都不加 就默認(rèn)為了int
舉個例子
f(){
}
main()
{
int a = 1;
a =f();
printf("%d ",a);
getch();
}
我這兒得到的結(jié)果是1842 是個整型數(shù) 你可以試試運行下 可能結(jié)果不一樣 但是結(jié)果肯定是個整型數(shù)據(jù)
作為對比 我們看看下一個實例
void f(){
}
main()
{
int a = 1;
f();
printf("%d ",a);
getch();
}
輸出結(jié)果是1 其中f()什么都沒做 什么都不返回
簡單地來說,無參數(shù)函數(shù)就是不傳入?yún)?shù)的函數(shù),有參數(shù)函數(shù)就是要傳入?yún)?shù)的函數(shù),空函數(shù)就是函數(shù)體為空的函數(shù),舉例子來說吧:
無參數(shù)函數(shù)是這樣:
Example1(){
printf("這是無參數(shù)函數(shù)");
}
有參數(shù)函數(shù)是這樣:
Example2(int a){
printf("這是有參數(shù)函數(shù),參數(shù)值為%d",a);
}
空函數(shù)是這樣:
Example3(){
/*這里什么都沒有*/
}
空函數(shù)就是什么也不做的函數(shù)。
void kong(){ //函數(shù)沒形參
int a[2][3]={1,2,3,4,5,6}; //函數(shù)內(nèi)有個二維數(shù)組
}
void kong2(int b[3][3]){ //函數(shù)形參有個二維數(shù)組
int a[3][2]={1,2,3,4,5,6}; //函數(shù)內(nèi)有個二維數(shù)組
}
main(){
int c[3][3];
kong(); // 調(diào)用空函數(shù),試試無參
kong2(c); // 調(diào)用空函數(shù),試試參數(shù)傳遞
return 0;
}
1、空函數(shù):返回值為void類型的函數(shù),可以用return,也可以不用return。 不用return和在函數(shù)結(jié)束處有個return是等效的。但要注意return后面除了分號以外什么也沒有。
2、空值函數(shù):返回值為NULL的函數(shù)。 如果是有返回類型的函數(shù), 返回空指針用“return NULL;"。這種函數(shù)就空值函數(shù)。
如果定義函數(shù)時只給出一對花括號{}而不給出其局部變量和函數(shù)體語句,則稱該函數(shù)為“空函數(shù)”。
空函數(shù)的作用:
(1)程序設(shè)計過程的需要。在設(shè)計模塊時,對于一些細(xì)節(jié)問題或功能在以后需要時再加上。這樣可在將來準(zhǔn)備擴(kuò)充的地方寫上一個空函數(shù),這樣可使程序的結(jié)構(gòu)清晰,可讀性好,而且易于擴(kuò)充。
(2)在C++程序中,可以將基類中的虛函數(shù)定義為空函數(shù),通過派生類去實例化,實現(xiàn)多態(tài)。
對于你所說的“void表示主函數(shù)為空函數(shù),沒有返回值”:
void 函數(shù)名(參數(shù));這種形式的函數(shù)定義,是說所定義的函數(shù)沒有返回值。沒有返回值(也就是函數(shù)體內(nèi)沒有return語句),是指函數(shù)只是完成一系列動作,不需要返回值給調(diào)用函數(shù);或者返回值是通過指針等方式返回給調(diào)用函數(shù)的。