关于C++的语句问题(初学者).......

来源:百度知道 编辑:UC知道 时间:2024/05/21 22:33:29
a>b?a:c>d?c:d相当于a>b?a:(c>d)?c:d,其中a=1,b=2,c=3,d=4,则条件表达式的值等于4.
这句话怎么理解,上面的语句要怎么读啊?
还有:
a=(a=(3*a,5*a),a+8)这句要怎么读?
所谓读也就是理解思路

条件表达式运算从右向左,条件表达式的优先级没有关系表达式高
所以第一个问题。先算c>d。c>d为假,c>d?c:d的值为d=4,然后再算a>b?a:4
又因为a>b为假,所以表达式的值为4;
第二个问题:a=(a=(3*a,5*a),a+8)因为逗号表达式的优先级最低,先算,(3*a,5*a),取5*a即a=5*a,再算(a,a+8),结果就是a=a+8