有没有人知道我可以改变本地定义的变量值的方法?
#include <stdio.h>
int change(int x, int y);
int main()
{
int x = 10;
int y = 20;
change(x,y);
printf("x:%d y:%d\n", x, y);
}
int change(int x, int y)
{
x = 20;
y = 30;
return(x);
return(y);
}
我希望x和y在main()中打印20和30。 我尝试返回值,但这不起作用。我可以使用另一种方法吗?我在想指针,但我不知道从哪里开始。
答案 0 :(得分:4)
使用指针:
void change(int *x, int *y)
{
*x = 20;
*y = 30;
}
并调用以下函数:change(&x, &y);
为了便于阅读,您可能希望使用与x
和y
不同的名称作为change
参数,因为它们不相同输入x
中声明的y
和main
变量。
答案 1 :(得分:0)
一些选项:
1)通过引用传递:int change(int &x, int &y);
2)返回一个数组并更改当前值:
int* temp = new int[2];
temp[0]=x+10;
temp[1]=y+10;
return temp;
3)直接返回打印:
printf("x:%d y:%d\n", change(x,y)[0], change(x,y)[1]);
答案 2 :(得分:0)
是的,这很容易 只需通过引用更改函数传递参数 而不是 int change(int x,int y)&gt; int change(int&amp; x,int&amp; y) 它会正常工作