1樓:網友
void是空型別。
是指不返回任何引數的函式。
而返回值與返回的引數的型別有關(實際上與返回的引數型別是一樣的)比如下面這個程式:
void max(int a, int b, int c)int a, b, c, max;
if(a>b)
max=a;
elsemax=b;
if(max>c)
printf("最大值是%d",max);
elseprintf("最大值是%d",c);
main()
int a, b, c;
printf("請輸入這三個數");
scanf("%d%d%d",&a,&b,&c);
max(a,b,c);
這樣 函式max並未返回引數,所以max函式是空型別。
前面有乙個void
而這樣的就不是了。
int max(int a, int b, int c)int a, b, c, max;
if(a>b)
max=a;
elsemax=b;
if(max>c)
return(max);
elsereturn(c);
main()
int a, b, c;
printf("請輸入這三個數");
scanf("%d%d%d",&a,&b,&c);
printf("最大值是%d",max(a,b,c));
雖然這兩個程式作用都是找出三個數中的最大值。
但上面的那個中的函式max沒用return這個函式來返回引數,所以是void的型別。
而下面的是用return來返回三個數中的最大值,然後通過主函式列印在螢幕上,並且返回的引數格式是int的。
所以是這裡的max是int型別的。
其餘情況以此類推。
2樓:網友
看函式定義返回值是什麼。
不是void型的函式一定要有返回值嗎?一定要有return語句嗎?無參函式可以有返回值嗎?
3樓:link專注休閒娛樂
非void型的必須有返回值,一定要有return語句。返回值的型別還要跟函式的型別一樣,無參函式可以有返回值,引數和函式能不能返回值沒有任何關係。
引數還分為按值傳遞和引用傳遞。像圖中的fun是按值傳遞的,所以對實參沒影響。
引用傳遞乙個記憶體位址,函式可以通過記憶體位址修改裡面的值。
中文翻譯為「無型別」。常用在程式編寫中對定義函式的引數型別、返回值、函式中指標型別進行宣告。
void的字面意思是「無型別」,void *則為「無型別指標」,void *可以指向任何型別的資料。
void幾乎只有「註釋」和限制程式的作用,定義乙個void變數沒有意義,不妨試著定義:
這行語句編譯時會出錯,提示「illegal use of type 'void'」。不過,即使void a的編譯不會出錯,它也沒有任何實際意義。
void真正發揮的作用在於:
對函式返回的限定。
對函式引數的限定。
眾所周知,如果指標p1和p2的型別相同,那麼我們可以直接在p1和p2間互相賦值;如果p1和p2指向不同的資料型別。
則必須使用強制型別轉換運算子。
把賦值運算子右邊的指標型別轉換為左邊指標的型別。
lua呼叫函式什麼時候打點,什麼時候打冒號
冒號本身是一個語法糖 當一個table內的方法被以冒號呼叫的話表示把這個table作為第一個引數傳進去 寫個demo local t t.fun function tab,v print tab,v endt fun 123 t.fun t,123 這2個是相同的 所以根據你的function判斷是...
Python函式定義和呼叫時都加,有什麼作用
tuple解包 bai,把可iter容器變成佔du len 個位置的多個容zhi器內元素。字典解包,把傳dao入字典解壓為專多個關鍵字引數。可模式匹屬配,例如 a b 則 a b 其實是a tuple b python中怎麼呼叫自定義函式 如果自定義函式,是在當前檔案中定義的,直接呼叫即可,就像樓上...
函式什麼時候才學,初中什麼時候學習函式
初中的時候就開始學習函式了,不過那些是基本函式,像y kx b 一次函式,y ax bx c 二次函式,這些在初中的時候你必須要學紮實,其實不難的,只要你善於思考,我想你一定行的,等到高一開始接觸指數函式y a x 就是a的x次方,對數函式y logax 平時會解決一些三次乃至高次的函式,等到高二高...