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有什麼區別...