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

标签 c pointers dereference

我遇到了下面的语句,脑子放屁了。

++(*q)->len;

q 似乎是一个连续的内存数组,从外观上看, 似乎是指向 structs 的指针数组;掌握一个新的 代码库,很抱歉含糊不清。

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

或者我应该这样理解,我们取消引用 q 然后递增值,然后我们取消引用并获得 struct 的 len 字段 即在递增之前比 q 提前一个。同样,在代码中,我想说的是这个 (++(*q))->len,将是显式执行。

任何指导都会很棒

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

最佳答案

*q 并不真正意味着它是连续的内存数组。 答案是它在内存位置 q

增加结构对象的 len 字段

关于c - 我应该如何在心理上解析这个陈述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42676386/

相关文章:

c - char 的 Scanf 输入工作一次然后是空白

c# - 有哪些适合 C#/Java 开发人员学习 native C/C++ 的好资源(最好是免费的)?

arrays - 红色/系统中指向 'array' 的指针

c - 为什么从两个不同的进程访问时共享内存值会发生变化?

java - 在java中取消引用for循环的整数值

c - 链表的头节点被传递给另一个函数,它被分配给函数中的本地节点。为什么没有错误?

C - 追加到我的数组中?

c++ - 指向字符数组的指针 C++

generics - 使用泛型取消引用强制

c - 使用结构取消引用运算符在 C 中粘贴标记