C++标准规定:
引用的右值必须是变量名,不能是表达式。
以下语句是错误的:
int a = 0;
int *&p = &a;
此规定是基于以下示例代码:
int a;
int *p1 = &a;
int *p2 = &a;
int *&pr = &a;
无法确定pr是对p1的引用还是对p2的引用。
正确的用法应该是这样的:
int a;
int *p = &a;
int *&pr = p;
C++标准规定:
引用的右值必须是变量名,不能是表达式。
以下语句是错误的:
int a = 0;
int *&p = &a;
此规定是基于以下示例代码:
int a;
int *p1 = &a;
int *p2 = &a;
int *&pr = &a;
无法确定pr是对p1的引用还是对p2的引用。
正确的用法应该是这样的:
int a;
int *p = &a;
int *&pr = p;