C语言中 优先级相同是运算符的先后怎么区分

2024-12-02 10:31:40
推荐回答(5个)
回答1:

优先级相同的运算符,按照结合性依次选取运算数。

比如

p++[0]().i;

由于++,[],(),.的优先级是相同的,裤迅结合性是从胡裂此左到右,故源嫌上述表达式实际上是这样的:

p++[0]().i;
(p++)[0]().i;
((p++)[0])().i;
(((p++)[0])()).i;

这样。

顺便在表达式中加括号真的是一个好习惯。

回答2:

一岩灶桐般来说不粗坦熟悉的话,建议多加几个()来做,这样就不用管什么优先级了辩举
再就是不要些一些有歧义的代码
如a=b+++c

回答3:

相同级别的运算符是有结合性的, 有的是左结合 有的是右结合 只有单目运算和运算且赋值 是右结合

回答4:

不用去学优先级,别让自己变得混乱,直接用括号打破规则!

回答5:

运算符雹袜优先级相同,埋春看结合性,是从左到源液激右的还是从右到左。