为什么这个程序只有在我初始化 a 和 b 时才有效。 我想在不初始化a和b的情况下传递它,例如:
numChange(10,15);
这可能吗?
#include <iostream>
using namespace std;
void numChange(int *x,int *y)
{
*x = 99;
*y = 77;
}
int main()
{
numChange(10,15);
//int a=10;
//int b=15;
//numChange(&a,&b);
cout<<a<<" , "<<b<<endl;
return 0;
}
最佳答案
因为您已将函数定义为接收指针,但是当您调用该函数时,您正试图传递一个 int。
编译器需要内存地址,而您正试图传递常量。
这没有意义,你正在尝试做类似 10 = 99 的事情; 15 = 77;?
numChange(10,15);
//int a=10;
//int b=15;
看来你在跳跃 a = 10 = 99 和 b = 15 = 77;
如果这是可能的,那就意味着我永远无法(在调用 numChange(10,15); 之后)使变量实际具有值 10,因为 10“指向”99(不是)。
关于c++ - 通过指针传递引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13426808/