38 下列有關參數傳遞的兩個敘述,何者正確?何者錯誤? 敘述 A:C 只有傳..-阿摩線上測驗
1F
|
3F Kari 國一下 (2020/07/09)
給大家一個觀念,真正的正確答案是C call by address據說是台灣人自己發明的稱呼 用來對照C++的傳參考呼叫(call by reference) 實際上C語言只有傳值呼叫(call by value)而已 就連傳遞指標給副程式也是先宣告出指標"變數"才把引數傳給副程式 (既然是指標變數,傳遞的就是指標變數的值,只是這個值指向一個記憶體位址而已) 有人會問那用 &x 傳遞 x 的記憶體位址到副程式呢? 這在副程式中也會產生一個指標變數用來指向 x 的記憶體位址 例如函式宣告 void function(int *p); 那在呼叫副程式的時候就會有一個指向整數型別的指標 p 指向 x 的記憶體位址 還是回到傳遞指標變數(pointer)給副程式的方法 而這個指標變數(pointer)的值就是指向 x 的記憶體位址 所以從頭到尾都只有call by value的用法 |