已知int型变量 y 的初值是 5,但在执行语句"f(y);"后,y 的值被改变,因此该语句所调用函数的原型是

admin2015-07-22  13

问题 已知int型变量 y 的初值是 5,但在执行语句"f(y);"后,y 的值被改变,因此该语句所调用函数的原型是

选项 A、void f(int x);
B、void f(int *x);
C、void f(const int *x);
D、void f(int &x);

答案D

解析 参数传递有三种:
传值(value),传址(address),和传引用(reference)
传值时子函数(被调用者)复制父函数(调用者)传递的值,这样子函数无法改变父函数变量的值,A选项属于此类。
传址时父函数将变量的地址传递给子函数,这样子函数可以能过改写地址里的内容改变父函数中的变量
传引用则是一种看起来像传值调用,而实际上功能同传址一样的传递方式。子函数可以改写父函数的变量值。D选项属于此类,所以D选项正确。
转载请注明原文地址:https://kaotiyun.com/show/XtNp777K
0

最新回复(0)