C++Primer &、*符号的多重定义问题

& 和*这样的符号,既能用作表达式里的运算符,也能作为声明的一部分出现,符号的上下文决定了符号的意义:

int i = 42;

int &r = i;        //&紧随类型名出现,因此是声明的一部分,r是一个引用

int *p;             //*紧随类型名出现,因此是声明的一部分,p是一个指针p

p = &i;            //&出现在表达式中,是一个取地址符

*p = i;             //*出现在表达式中,是一个解引用符

int &r2 = *p;   //&是声明的一部分,*是一个解引用符

在声明的语句中,&和*用于组成复合类型;在表达式中,他们的角色又转变成运算符。在不同场景下出现的虽然

同一个符号,但是由于含义截然不同,所以我们完全可以把他们当做不同的符号来看待。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值