我有一个相当容易的问题,我只需要澄清。
int R3;
int **R4;
R3 = (*(*R4))+4;
所以我的问题是,R4是指向指针的指针,对吗?那么在最后一个语句中这是否意味着将指针的地址递增4或将R4加到R4指向的值?
答案 0 :(得分:5)
这意味着为该值添加4。 R4
是指向int
的指针。 *R4
取消引用第一个指针,因此它是指向int
的指针。同样*(*R4)
取消引用剩余的指针,并为您提供int
的值。
答案 1 :(得分:0)
R4是指向指针的指针,对吗?
是的,这是正确的。 R4
是指向int
的指针。
最后一个语句包含对R3
的分配。这意味着R3
的值正在改变。分配的值是表达式(*(*R4))+4
。 (*(*R4))
生成存储在**R4
(int
)中的值,因此表达式的值等于{{间接引用的int
的值。 1}}加上4. R4
永远不会被修改。