C語言呼叫完void函式後如何將值返回主函式實現輸出的呢?void函式沒有返回值是陣列不同

2021-04-21 01:33:41 字數 1196 閱讀 7741

1樓:岔路程式緣

1、來c語言呼叫完void函式後如何自將值返回主函式實現輸出的呢?

答:因為 void函式沒有返回值,要想把讓函式的值帶回主函式,還有兩種辦法,第一是使用指標做引數,第二是瀠陣列做引數。

2、用指標傳遞就可以了嗎,那如果不用指標呢?

答:用指標當然可以啦。如果不用指標,那就選擇用陣列引數了。

2樓:匿名使用者

我看到你對一條回答bai的追問,感覺可能duget到你的點了zhi。

#include

void increase(int *a)int main(int argc, char *argv)上面這個

dao函式最後輸出回的值是12.

void increase(int *a)這個函式傳入的是指標,答a這個引數在increase函式呼叫結束後確實就會被釋放,但a是一個指標,釋放的是這個指標!但是你仔細看increase這個函式體裡,已經對a這個指標指向的內容做了更改:*a = *a + 1; 我們修改的並不是a而是a指向的內容也就是h的值,所以h的值已經被改變了!

3樓:匿名使用者

可以考慮讓呼叫者提供一個存放結果的陣列起始地址,函式將結果儲存在陣列中

4樓:匿名使用者

通過全域性變數實現修改

通過函式的指標引數完成返回

通過函式的引用引數完成返回

也可以把陣列作為引數直接在函式中修改

5樓:三城補橋

因為語法就是這樣啊,函式呼叫直接使用其函式名即可,函式是void型別只是標識該函式沒有返回值而已。

6樓:匿名使用者

把void函式換成傳值函式吧

為什麼c語言中,陣列可以用void呼叫,既然沒有返回值,為什麼在主函式中,陣列值還是會變 ,

7樓:暮影

要清楚值呼叫

和地址調copy用bai的區別, void sum(int x,int y){};這種是地址調du用,是不會zhi

影響到實參的dao

值的,要是按照地址呼叫(指標呼叫),是共享同一個存貯空間的,也就是改變的是同一個記憶體裡面的內容,陣列名的呼叫,就是指標呼叫的一種,int arr(int array,int n){},你在函式裡面改變array的值,實參裡面也會改變的

C語言子函式呼叫糾錯,C語言子函式呼叫糾錯

第一 要保證可以最終退出。就是說,這樣的呼叫最終可以回來。第二 避免迴圈呼叫。就是說當a呼叫b,然後b又呼叫a這種情況,一定要有可以跳出的情況,讓某個a或者b在一定條件下不再呼叫對方就可以返回。第三 避免呼叫深度過深。就是說不能一直呼叫下去。這個具體能夠呼叫多少次根據你的硬體 等具體情況確定的。一般...

c語言 怎麼呼叫指標陣列函式,C語言 怎麼呼叫指標陣列函式

1.函式指標的陣列定義方法 返回值型別 指標變數名 number 形參列表 例如 double add double a,double b double sub double a,double b double mul double a,double b double div1 double a,d...

c語言void跟int宣告函式的區別

是的,可以在void函式裡面任意位置加一條語句 return 表示中斷函式並返回,如果void函式沒有返回語句,預設在 結束前返回空。當函式不用返回值時用void型別,如果呼叫函式參與運算,編譯系統能檢查出錯誤 void意思是函式沒有返回值,所以不需要用return 主函式int與void有什麼區別...