C语言问题,小问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 00:41:26
定义一个函数void fun(int &a,int b)
请问:
int &a和int b有区别吗?好像调用的时候都是一样的。

假设:
.
.
int i= 10;
int j = 20;

fun(i, j);
.
}
fun(int &a, int b)
{
a = 30;
}

int &a 传址也叫引用传递, 他传递的是a变量的地址。在fun函数种改变a的值会影响到调用时的那个参数(本例的那个i)。

int b 值传递,没什么好说的。

所以调用的时候必须的为引用参数定义一个变量,如果调用的时候fun(1,2),会报错。

自己试一下,好处和麻烦都挺多的。

传值和传址。

不一样,a传递的是引用值,如果你在函数fun里面改变了a的值的话,在调用这个函数的函数里a的值也会改变,但是如果改变的是b的话,就不会在调用函数当中改变b的值

有区别

1和5楼正解

定义一个函数void fun(int &a,int b) 是错误的表示,括号内的a和b,是形参变量有定义部分,不能用int &a进行定义。