C++中&符号的含义辨析:指针与引用场景下的不同解读
C++中
&符号在指针与引用中的含义疑问 我的困惑
指针与引用均使用符号&,指针中&通常被解读为“取地址”,我疑惑引用中的&是否也应作此解读。
我的推论
当&出现在=右侧时,可解读为“取地址”;当&出现在=左侧时,应关联引用,不能直接解读为“取地址”。
我的验证
指针中的
&:int a = 1; int *p = &a;指针变量
p的值是变量a的地址,即p是指向a的指针。引用中的
&:int a = 1; int & b = a;b是a的引用,即引用变量b的地址与变量a的地址相同。但若直接将代码解读为“引用变量b的地址是变量a的地址”,则代码应写成:int a = 1; int & b = &a;而这不符合C++语法,报错信息为:
error: cannot bind rvalue '(int)(& a)' to 'int&'
感谢各位的回复!
内容的提问来源于stack exchange,提问作者Ross Li
相关产品推荐
相关产品推荐

