64,639
社区成员
发帖
与我相关
我的任务
分享
void add(int * &i)
{
*i += 5;
}
int main()
{
int temp;
add(&temp);//为什么出错
return 0;
}
void add(int &i)
{
i += 5;
}
int main()
{
int temp;
add(temp);//为什么出错
return 0;
}
int temp;
int* p = &temp;
add(p); // 这里p会转成一个匿名的int* &,所以可以,但&temp是转不了匿名的int* & 的
变量定义从左往右看
int* &i;
i 是一个引用,一个int指针的引用
int temp;
temp是int
&temp是int*
而不是int* 的引用
你可以
void add(int * &i)
{
*i += 5;
}
int main()
{
int temp;
int* p = &temp;
add(p);
return 0;
}