C++中条件运算符(?:)的问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 16:09:45
C++中,条件运算符(?:)的优先级高于赋值运算符,则
x>y?x:y=1相当于以下哪个?
1. x>y?x:(y=1)
2. (x>y?x:y)=1
按我的理解,应当是2,但实际上是1,请问这是为什么?

看看=?的优先级到底处于什么位置

答案应该是第二个
我用visual C++测试了一下
int x=2,y=3;
x>y?x:y=1;
cout<<y;
结果是1,在(x>y?x:y)=1才能得到,第二个是对的
如果是第一种情况,结果应该是2

应该是,如果x>y,那么返回x的值,否则返回y=1这条语句。