C语言条件表达式运算

pintf("%d",x<0?(-1)*++x:x++);(假定x的值为3)

x++>3?(x<3?a:b):b(假定x的值为3)

给下运算过程,谢谢

1.pintf("%d",x<0?(-1)*++x:x++);这个输出的是3,这个如果写成if..else..语句是:
if(x<0){
x=(-1)*++x;
}else{
x=x++;
}
而++在后是先赋值后自增,所以x++的值是3,因此输出3
2.x++>3?(x<3?a:b):b,这个语句如果写成if..else..语句就是:
if(x++>3){
if(x<3){
x=a;
}else{
x=b;
}
}else{
x=b;
}
因为a和b的初始值是0(整型和浮点型的默认值都是0),所以输出0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-03
1.pintf("%d",x<0?(-1)*++x:x++);这个输出的是3,这个如果写成if..else..语句是:
if(x<0){
x=(-1)*++x;
}else{
x=x++;
}
而++在后是先赋值后自增,所以x++的值是3,因此输出3
2.x++>3?(x<3?a:b):b,这个语句如果写成if..else..语句就是:
if(x++>3){
if(x<3){
x=a;
}else{
x=b;
}
}else{
x=b;
}
因为a和b的初始值是0(整型和
浮点型
的默认值都是0),所以输出0