136、以下對C語言函數的有關描述中,正確的是?A) 在C中,調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參B) C函數既可以嵌套定義又可以遞歸調用?C) 函數必須有返回值,否則不能使用函數D) C程序中有調用關系的所有函數必須放在同一個源程序文件中、
1 回答
已采納
onemoo
TA貢獻883條經驗 獲得超454個贊
恩,B 和 C 是錯的。
B 選項:C語言可以遞歸調用,不能嵌套定義函數。
C 選項:返回類型為 void 的函數當然不必返回值。
D 選項:C 語言沒有這個要求。只要知道函數的聲明就可以調用函數,不需要知道該函數定義在哪里,更不需要放在一個文件中了。
A 選項是對的。
C 語言傳參只有值傳遞!
至于形參是數組的情形:好像在調用時也能傳入數組實參,并且在函數中能通過修改形參數組的元素的值來直接改變實參數組中的元素。看起來像是形參的值傳給了實參,其實不是這樣的!
因為函數中聲明為數組的形參,其類型實際上是“指向數組元素的指針”類型,并不是真正的數組類型。
調用函數時傳入實參數組,也會自動轉型為指向其首元素的指針。
所以實際上傳入數組的是指針類型,形參也是指針類型,類型匹配,完全滿足函數調用規則。
既然形參就是指向實參數組首元素的指針,那這樣傳參仍是指針之間的“值傳遞”。
而在函數中所有操作所謂“形參數組”的行為,其實都是通過指針來修改外部的實參數組? 提示這里的知識點就是“指針和數組的密切關系”
- 1 回答
- 1 關注
- 6561 瀏覽
添加回答
舉報
0/150
提交
取消
