[C++程序设计]对“&”和“*”运算符
对“&”和“*”运算符再做些说明:
(1) 如果已执行了“pointer_1=&a;”语句,请问&*pointer_1的含义是什么?“&”和“*”两个运算符的优先级别相同,
但按自右至左方向结合,因此先 进行*pointer_1的运算,它就是变量a,再执行&运 算。因此,&*pointer_1与&a相同,
即变量a的地址。
如果有pointer_2=&*pointer_1;它的作用是将&a(a的地址)赋给pointer_2,如果pointer_2原来指向b,
经过重新赋值后它已不再指向b了,而也指向了a
(2) *&a的含义是什么?先进行&a的运算,得a的地址,再进行*运算,即&a所指向的变量,*&a和*pointer_1的作用是一样的
(假设已执行了“pointer_1=&a;”),它们等价于变量a。即*&a与a等价.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。