在C / C ++解除引用运算符上

时间:2013-04-08 13:47:28

标签: c++ c pointers

我对这个问题有点怀疑:

如果我有:

int a = 11;
int *b = &a;

当我这样做时:

&*b 

我得到a所指的b地址,所以我的问题是:

取消引用运算符是否返回指向的变量或该变量的值?

2 个答案:

答案 0 :(得分:6)

  

取消引用运算符是否返回指向的变量或该变量的值?

它返回一个左值,引用指向的对象(即你自己的术语中的变量指向)。如果您在需要 rvalue 的上下文中使用它,则将应用左值到右值转换(即该变量的将从变量中读出。)

答案 1 :(得分:5)

b == &a

所以

*b == a

所以

&*b == &(*b) == &(a)