計算機概論、大意(資訊科學概論,電腦常識,電子計算機概論)題庫下載題庫

上一題
38 下列有關參數傳遞的兩個敘述,何者正確?何者錯誤? 敘述 A:C 只有傳值呼叫(call by value)一種參數傳遞方法 敘述 B:C++有傳值呼叫與傳參考呼叫(call by reference)兩種參數傳遞方法
(A)敘述 A 是正確的,但是敘述 B 是錯誤的
(B)敘述 A 是錯誤的,但是敘述 B 是正確的
(C)敘述 A 和敘述 B 都是正確的
(D)敘述 A 和敘述 B 都是錯誤的


答案:登入後觀看
難度: 非常困難
最佳解!
jo6 tp6 大一下 (2019/03/22)
根據我學的C++有:傳值(Pass by ...


(內容隱藏中)
查看隱藏文字
1F
jo6 tp6 大一下 (2019/03/22)

如果B正確

答案就不會有C


根據我學的C++有:傳值(Pass by value)、傳參考呼叫(Pass by reference)的方式

而C語言肯定有傳值呼叫(call by value)

有實現傳參考呼叫(Pass by reference)的方法,但是是使用傳值呼叫(call by value)實現的


這位老師有探討過這一塊,可以看看

http://eportfolio.lib.ksu.edu.tw/~T093000170/blog?node=000000119

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的用法

38 下列有關參數傳遞的兩個敘述,何者正確?何者錯誤? 敘述 A:C 只有傳..-阿摩線上測驗