a-3运算了,只是结果没地方存,丢了。
b赋值了,仅限于函数内,不会影响外面的值。即原来的x,y还是原来的值。
改为传变量的引用即地址,函数内修改这个地址的值,大概是这样:
fun(int *a, int *b) {
*a = *a -3;
*b = 4;
}
调用:fun(&x, &y)
你不是a=a-3
传值不修改原数据,传地址才会修改
你的函数时传值的方式,相当于复制一个值给到函数,而函数改变的值是你复制的值,应该使用传地址的方式,将地址传给函数,这样会减少内存拷贝,运算速度也会更快
代码:
void fun(int&a,int&b)
{
a-=-3;
b=4;
}
首先,问题出现的原因是因为在printf函数中,变量a的值没有参与运算,而变量b被赋值后,变量y却没有发生改变。此问题的解决需要对代码进行修改。
int a = 1;
printf("a=%d\n", a);
在这段代码中,"%d"是一个格式控制符,它表示输出一个十进制整数。通过使用"%d",我们可以将变量a的值输出为1。
int b = 2;
int y = 2 * b;
printf("y=%d\n", y);
在这段代码中,我们首先给变量b赋值为2,然后通过将变量b乘以2来计算变量y的值,并将其输出为4。
综上所述,要将printf函数的输出结果改为-2和4,可以使用以下代码:
int a = -2;
int b = 2;
int y = 2 * b;
printf("a=%d\n", a);
printf("y=%d\n", y);
在这段代码中,我们使用赋值操作符将变量a的值设置为-2,并将变量b乘以2来计算变量y的值。然后,我们分别使用"%d"格式控制符将变量a和y的值输出为-2和4。
希望能够解答您的问题!如有其他问题,请随时提问。