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

Shu*_*eng 0 c pointers

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

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

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

struct node *var
var = (*ptr).next
(*var).x = some value
Run Code Online (Sandbox Code Playgroud)

这真的让我很烦.一直在寻找教科书和互联网上的任何地方,无法找到答案.

CB *_*ley 7

x -> x相当于(*x).x你只做了两次:

(*(*x).x).x
Run Code Online (Sandbox Code Playgroud)

.更紧密的一元,*所以优先权的作用.如果你感到偏执,你可以这样做:

(*((*x).x)).x
Run Code Online (Sandbox Code Playgroud)