我正在查看以下link并说明
虚线之间的运算符具有相同的“优先级” 你会注意到有18个
现在我的问题是上述陈述的含义是什么。例如,如果两个运算符位于->
之前的[]
之前的虚线之间,则表示->
的优先级高于[]
?
答案 0 :(得分:2)
例如,如果两个运算符位于
->
之前的[]
之前的虚线之间,则表示->
的优先级高于[]
?
是的,两者都处于相同的优先级,但是因为从左到右的associativite,例如:
a->b[i];
被解析或等效为(a->b)[i];
。当a
是指向结构的指针并且b
是struct的数组成员时,这很有用。
表达如下:
a[i]->b;
与(a[i])->b;
相同。当a
是结构指针数组时,这很有用。
您不需要括号。
对于*
,.
,->
和[]
运营商,您可以阅读此答案"Pointer to structure"。
答案 1 :(得分:2)
是..你是对的..还要注意,如果*
和/
出现在表达式中,那就是考虑关联性的情况......在这种情况下你必须要评估从左到右...
在a * b / c
中,首先评估操作a * b
,然后评估/
。
在a / b * c
中,首先评估操作a / b
,然后评估*
。