C++值传递问题..

图片里想表述我不是很懂,SOS

img


如果能解答图片中的问题,万分感谢(❁´ω`❁)

很多时候,你想要直接改变形参,但是又不想不小心把实参也给改了,那就用值传递啊
比如说,我写个延时函数,利用while循环来延时
void delay(int x)
{
while(x)x--;
}
这样当x减到0,就自动退出循环了
我没必要为了这个简单的功能再重新定义一个int型的变量来存x,就直接操作x不方便吗
每个设计,你总是要还原到它的应用场景,才能看出作用,孤立的看问题,那什么设计都感觉是多余的

意思是值传递只能单向传递,不能反向修改
比如:
void fun(int a)
{
a = 10;
printf("%d",a);
}
函数调用
int k = 100;
fun(k);
在这段代码中,函数参数是值参,调用fun(k)就是值传递。在函数中可以使用传递的k值,因为k值传递给了参数a。但在函数中修改a值的话,并不会修改外部的变量k的值