首页 > 代码库 > [C++程序设计]对“&”和“*”运算符

[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等价.