关于结构体和指针,如何使用点运算符编写此表达式 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/