运算符优先级的结合顺序的疑问a = ~a◆◆
◆◆其实是两个运算符,前置的和~优先级一样,并且是从右到左结合的。 后置的◆◆优先级比~低,并且是从左向右结合的。
运算符的左结合,右结合
运算顺序
先说第二个吧
a-=b◆c◆d;就等于是a=a-(b◆c◆d);赋值运算符的结合顺序是由右到左,括号里面先结合,加号从左到右。
第一个
y?10:3);
这个括号先结合,然后括号里面的三目运算符进行运算。
主要问题是结合顺序和运算顺序的问题,我说说我的理解,希望对你有帮助,比如(◆◆i)◆(◆◆i)◆(◆◆i),这个式子,你只能根据优先级的表确定括号里面的先执行,但是谁都不能确定的告诉你三个式子是哪个先执行,所以有了不同的结果,在c的标准里面,这个是没有规定运算顺序的,在c的标准里面,有且仅有四个运算符是规定了运算顺序的,注意是运算顺序,那就是与,或||,逗号运算符,,唯一的三目运算符?:,除了这四个运算符规定是从左到右执行的,剩下的都没有规定运算顺序。
关于C语言条件运算符的结合顺序?!!!
大家注意,结合顺序不等于求值顺序。条件表达式的求值顺序是这样规定的:
test ? exp1 : exp2;
条件测试部分test非零,表达式exp1被求值,否则表达式exp2被求值,并且保证exp1和exp2两者之中只有一个被求值。该运算符是右结合的值是要告诉你:后面不管跟了多大多长的表达式只要它是合法的那就整个被看作exp2。
d?c:d)
d?c:d),就算你后面是优先级比条件运算符还高的操作符组成的表达式,它也得按照条件运算符的求值规则求值。
比如说
b ? (x = 200) : (x◆y);
y?(x = 200):(y = 350); 就不要我再作解释了吧!
以上就是土嘎嘎小编大虾米为大家整理的运算符的结合顺序_c语言中那些运算是左结合那些是右结合相关主题介绍,如果您觉得小编更新的文章对您有所帮助,不要忘记讲本站分享给您身边的朋友哦!!