我该如何在心理上解析这个陈述?

时间:2017-03-08 16:13:03

标签: c pointers dereference

我遇到了以下声明,并且心慌。

++(*q)->len;

q似乎是一个连续的内存数组,从外观来看, 似乎是structs的指针数组;掌握一个新的 代码库,对不起模糊。

以上是我们的说法 取消引用q,获取指针值,然后我们取消引用并访问字段len,然后我们递增?在代码中,我试图说的是++((*q)->len),这将是显式执行。

或者我应该阅读此内容,我们取消引用q,然后递增该值,然后我们取消引用并获取len字段,该字段优先于struct增量前q。同样,在代码中,我试图说的是(++(*q))->len,这将是显式执行。

任何指导都是盛大的

更新: 我想第一个解析是有意义的++((*q)->len),好像它是第二种情况, 我们会得到len的值,然后不做任何事情。

1 个答案:

答案 0 :(得分:6)

*q并不能真正意味着它连续的内存数组。 答案是它增加了内存位置len

的结构对象的q字段