例子:z=(a==b?a:b?c:d);我知道这个例子,从右向左结合的话,会是:z=(a==b?a:(b?c:d));从左向右结合的话,会是:z=((a==b?a:b)?c:d);另一个例子:a=b=c等价于a=(b=c)那我是不是可以理解成这个结合性相当于给先结合的东西加上括号,也就是优先级变高了。放到第一个例子里就是先计算b?c:d但是我用过下面这个例子测试intc=0;inttest=c==0?printf("1\n"):(c=2)?(c=3):printf("4\n");printf("%d",c);结果输出1,我知道按照规范不能再条件表达式中有赋值语句,但这只是为了测试执行顺序,结果说明它是先从最左边的1开始运算的。真诚求助!
qq_笑_17
森林海
相关分类