在函式呼叫時,什麼時候返回void值,什麼時候返回其它值

2025-01-28 21:00:18 字數 1786 閱讀 4778

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 平時會解決一些三次乃至高次的函式,等到高二高...