我遇到了以下声明,并且心慌。
++(*q)->len;
q
似乎是一个连续的内存数组,从外观来看,
似乎是structs
的指针数组;掌握一个新的
代码库,对不起模糊。
以上是我们的说法
取消引用q
,获取指针值,然后我们取消引用并访问字段len
,然后我们递增?在代码中,我试图说的是++((*q)->len)
,这将是显式执行。
或者我应该阅读此内容,我们取消引用q
,然后递增该值,然后我们取消引用并获取len
字段,该字段优先于struct
增量前q
。同样,在代码中,我试图说的是(++(*q))->len
,这将是显式执行。
任何指导都是盛大的
更新:
我想第一个解析是有意义的++((*q)->len)
,好像它是第二种情况,
我们会得到len
的值,然后不做任何事情。
答案 0 :(得分:6)
*q
并不能真正意味着它连续的内存数组。
答案是它增加了内存位置len
q
字段