是否需要括号从指向结构的指针获取结构成员的地址,如"&(s-> var)"vs"&s-> var"?

jok*_*ker 36 c

我有一个struct str *s;

让我们var成为一个变量s.是&s->var等于&(s->var)

In *_*ico 45

行为方面,是的,它们是等价的,因为成员访问->运算符的优先级高于address-of &运算符.

&(s->var)可读性方面,第二个可读性比&s->var第一个表格更易读.使用第二种形式,&(s->var)您不必再猜测它实际上在做什么,因为您知道括号中的表达式总是首先被评估.如有疑问,请使用括号.

  • +1如果您必须询问运算符优先级,请使用括号来澄清其含义.这就是我总是告诉新开发者的. (9认同)