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 关注
- 6287 浏览
添加回答
举报
0/150
提交
取消