C 和指针符号

标签 c pointers

打开 Postgres 代码库,我看到很多 C 代码是通过使用 -> 符号的指针编写的,方式如下:

(foo)->next = 5;

我知道指针符号具有优先级,例如 -> = (*foo)。并且与 *foo 不同。

但是,当括号位于变量名称之外并取消引用 next 的地址时,这意味着什么,还是仅仅是一种编码风格特有的约定?

最佳答案

这是我以前从未见过的编码约定。

但这并没有改变任何东西。

(foo)->next = 5;

完全等同于

foo->next = 5;

关于C 和指针符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469550/

相关文章:

用于扫描和打印任何基本数据类型数组的 C 函数

c++ - 为什么这行得通? [C++;空指针]

c++ - 通过将文本文件读入字符串/vector 来计算加权/未加权 GPA

c++ - 使用 typedef 和 #define 的不同原型(prototype)

c - 创建指向链表节点的指针时,malloc 和不使用 malloc 有什么区别?

创建指向二维数组的指针

c - 是否可以将 void * 转换为 char **?

java - 如何全局获取Android中的鼠标位置

c - 在 C 中获取 void (*)() 函数指针的大小

c - 在文件中搜索字符串