當前位置:首頁 » 編程語言 » c語言函數值變數不為空的現象
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言函數值變數不為空的現象

發布時間: 2022-11-30 06:09:09

『壹』 c語言中的空函數和空值函數分別指的是什麼,

1、空函數:返回值為void類型的函數,可以用return,也可以不用return。 不用return和在函數結束處有個return是等效的。但要注意return後面除了分號以外什麼也沒有。
2、空值函數:返回值為NULL的函數。 如果是有返回類型的函數, 返回空指針用「return NULL;"。這種函數就空值函數。

『貳』 C語言—空類型問題

准確的說,函數這個名稱不太准確,容易誤導人。C/C++里的函數應該被叫做「子程序」,是一個獨立的程序段,可以被重復調用用來完成類似的功能
這樣的「子程序」很多情況下是用來提供一個值的,這就是通常的函數,這個值的類型必須明確,就是返回值的類型
但有的子程序不是用來提供一個值,可以僅僅是執行某些特定的操作,那麼,定義為空類型是安全的,表示「不允許該子程序返回值」。這種子程序只能通過獨立的語句調用,不能用在表達式里
之所以需要空類型,是因為,函數的默認返回值類型是int,如果在函數定義時未帶返回類型說明,則默認為int;即使函數中沒有return語句,編譯器按照函數返回值的原理,會返回一個不確定的值。如果將這樣的函數錯用在表達式里,語法上沒錯,但會帶來很難察覺的邏輯錯誤。
而將空類型函數用在表達式里是一個編譯錯誤。

『叄』 C語言中空函數是怎麼回事

凡不加返回值類型限定的函數,就會被編譯器作為返回整型值處理。而不是當做void

譬如你的void fun() 本身就沒有返回值 如果定義為fun() 雖然不給函數體內加return語句 但照樣會返回一個整型數 因為什麼都不加 就默認為了int
舉個例子
f(){
}
main()
{
int a = 1;
a =f();
printf("%d ",a);
getch();
}
我這兒得到的結果是1842 是個整型數 你可以試試運行下 可能結果不一樣 但是結果肯定是個整型數據

作為對比 我們看看下一個實例
void f(){
}
main()
{
int a = 1;
f();
printf("%d ",a);
getch();
}
輸出結果是1 其中f()什麼都沒做 什麼都不返回

『肆』 C語言中函數定義的返回值為空的問題

改成這樣就對了:
void f()
{
float a;
printf("%f",a);//你原來的輸出格式不對
}
void類型的函數無返回值,也就是說,不需要return語句
當然也可以在函數末尾加上一條空的return語句:return;(和return 1;是不同的)
void f(float a)
{printf("%f",a);
}
也是對的....