1樓:匿名使用者
其實你的概念一定要清楚的哦,像這種問題得分兩個情況來考慮的:
①首先看函式的行參,如果是陣列型別或者是指標型別的,可以斷定為「地址傳遞」,也就是說,一旦主函式呼叫該函式時,函式間是存在地址傳遞的,把要進行處理運算的主函式的內容的地址傳遞給函式,參與運算的資料其實就是主函式中的實參的內容,簡單來講,就是行參和實參共用一個地址的資料,也就是地址共享。對於這種傳遞,不管存不存在返回值問題,主函式中的實參的資料內容都會變化的;
②如果判斷行參是變數的話,傳遞形式就為「值傳遞」,這樣,主函式中的該變數值是不會改變的,因為兩者的做用域是不同的,在函式裡的變數只在該函式體裡起作用,並不影響主函式裡的變數的值。
其實,對於具體的問題,解答的方法不盡相同的,有些還得綜合考慮定義變數的儲存方式(有外部變數、內部變數、區域性變數、全域性變數)。
希望我的回答對你有幫助,謝謝!
2樓:匿名使用者
你的敘述太主觀了,
c語言的函式是值傳遞的,這個書上已經寫的不能再清楚了。
void fun(int x)
當你呼叫fun(int x)的時候,例如
int n=0;
fun(n);
這時候會臨時生成一個int x,並且把實參n的值(目前是0)賦給形參x,這時候x的值就是0了,在fun函式定義裡面對x再怎麼操作都不關n的事了,
至於返回值,是函式執行完時返回一個值罷了。
其實引數是指標的函式,也是值傳遞,只不過傳遞的是地址。這個在書上講到指標的時候也說的很清楚。
有一點特別注意就是引數如果是引用型別,它會改變實參的值,因為它是引用型別。
還是建議你把書多看熟些
3樓:危獻
這與子函式返回與否沒有關係
無論返回與否 主函式的a值都不會改變
除非 你用a=子函式(a)的方式
4樓:皮皮愛運動
c語言裡面確實沒有引用,但是呢,可以傳地址,效果和引用差不多
5樓:認證註冊
不是的這是方法呼叫
有兩種情況
如果只是普通數值傳遞呼叫,那原值沒有改變
但如果是指標呼叫,那原值就會變了
你可以看看書後面指標那會,有詳細的比較說明
6樓:紅攀攀
上面說得是,搞清楚值傳遞與地址傳遞這兩種函式呼叫方法不同處吧
C語言中什麼是函式的返回值
當一個函式不是void型的時候就必須有一個返回值 main 函式除外,這個返回值就看你這個函式本身是什麼型的。返回值經常用來標誌一些東西,比如一個遊戲程式中的函式int win 用來判斷輸贏,輸返回0,贏返回1,然後主調函式可以根據它的返回值做相應的處理,比如這樣的句子 if win speed 進...
在c語言中函式返回值的資料型別撒於什麼
c 在定義函式時所指定的資料型別 例如 int fun 這個函式的返回值就必須是個整型的值再如struct fun 那他就必須返回一個結構體指標 選擇c,函bai數返回 值的型別和du函式名師沒有 zhi關係的,函式dao名只是個簡單的代號回,沒有什麼特殊答的意義,return 語句中表示式的資料型...
c語言中函式必須有返回值嗎?沒有無法使用對嗎
不是必須有返回值。如果沒有返回值型別名為 void void函式的定義 void 函式名 無型別 函式名 程式 如果沒有返回值型別名為 void 整數型別int 型別返回值為整數型別int,以此類推 型別名有 void int long float int long float 按標準來說,c的ma...