C:我如何使用 (.) 点运算符编写 ( x -> x-> x )

标签 c pointers

关于结构体和指针,如何使用点运算符编写此表达式 x->x->x

使用箭头运算符:x->x->x 我可以轻松访问第三个元素。使用点运算符:(*x).x 如何使用点运算符访问第三个元素?

我知道箭头运算符是点运算符的快捷方式,所以应该可以使用点运算符到达第三个元素?我可以使用一个变量:

struct node *var
var = (*ptr).next
(*var).x = some value

这让我很生气。一直在教科书和互联网上到处寻找,找不到答案。

最佳答案

嗯,x -> x 等同于 (*x).x 所以你只需执行两次:

(*(*x).x).x

. 比一元 * 绑定(bind)得更紧,因此优先级有效。如果你感到偏执,你可以这样做:

(*((*x).x)).x

关于C:我如何使用 (.) 点运算符编写 ( x -> x-> x ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7941573/

相关文章:

c - 如果我们将打印结构变量本身,程序的行为会是什么

c - 如何找到每个大小为 n 的 m 个数组的最长公共(public)子数组?

c - 我如何让子线程等待一个条件并被父线程的一次调用唤醒?

使用 if 条件检查时,条件跳转或移动取决于未初始化的值

python - 在python ctypes中将字符串数组作为参数传递

c - 添加元素时链接列表出现段错误

c++ - 从函数返回指向二维数组的指针

c++ - 确定 CPU 缓存中值的值和/或地址

c - 尝试为结构中的字符串分配内存时出现段错误

c++ - 节点结构调用自身