引用和解除引用指针

时间:2014-08-07 21:32:43

标签: c

我有一个相当容易的问题,我只需要澄清。

int R3;
int **R4;
R3 = (*(*R4))+4;

所以我的问题是,R4是指向指针的指针,对吗?那么在最后一个语句中这是否意味着将指针的地址递增4或将R4加到R4指向的值?

2 个答案:

答案 0 :(得分:5)

这意味着为该值添加4。 R4是指向int的指针。 *R4取消引用第一个指针,因此它是指向int的指针。同样*(*R4)取消引用剩余的指针,并为您提供int的值。

答案 1 :(得分:0)

  

R4是指向指针的指针,对吗?

是的,这是正确的。 R4是指向int的指针。

最后一个语句包含对R3的分配。这意味着R3的值正在改变。分配的值是表达式(*(*R4))+4(*(*R4))生成存储在**R4int)中的值,因此表达式的值等于{{间接引用的int的值。 1}}加上4. R4永远不会被修改。