这是代码:
#include <iostream>
using namespace std;
void mysize(int &size, int size2);
int main()
{
int *p;
int val;
p = &val;
cout << p;
mysize(&val, 20); // Error is pointed here!
}
void mysize(int &size, int size2)
{
cout << sizeof(size);
size2 = size2 + 6000;
cout << size2;
}
这是 GCC 的错误输出:
在函数“int main()”中:第 10 行:错误:从“int*”类型的临时编译中对“int&”类型的非常量引用进行无效初始化,由于 -Wfatal-errors 而终止。
这意味着什么?我不明白错误信息......非常数的无效初始化?我用两个参数声明了上面的原型函数,一个是整数的引用,一个是整数值本身。我传递了 int 的引用(参见第 10 行),但这个错误一直在向我抛出。另外,它是如何“临时指针”的?
问题是什么?