若有定义"int x=4,y=5;”,则表达式"y>x++? x- - : y++"的值为5,为什么?
答案:3 悬赏:20 手机版
解决时间 2021-04-18 19:19
- 提问者网友:王者佥
- 2021-04-18 02:56
若有定义"int x=4,y=5;”,则表达式"y>x++? x- - : y++"的值为5,为什么?
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-04-18 03:58
y>x++? x- - : y++
如果用printf输出上式的结果printf("result = %d", y>x++? x- - : y++)
相当于
if (y>x)
{
x++;
printf("result = %d", x);
x--;
}
else
{
printf("result = %d", y);
y++;
}
如果用printf输出上式的结果printf("result = %d", y>x++? x- - : y++)
相当于
if (y>x)
{
x++;
printf("result = %d", x);
x--;
}
else
{
printf("result = %d", y);
y++;
}
全部回答
- 1楼网友:duile
- 2021-04-18 04:28
我运行过这个程序,x=4,y=5是不是你的答案错了,因为运算符的优先级是>比? : 高,所以先执行y>x++,而且x++是后置运算符,先执行运算再+1,所以先比较y=5比x=4大,然后x+1=5,然后执行三目运算符? :当三目运算符是真的时候执行冒号前面的语句,假的时候执行冒号后面的语句,因为之前判断y>x是真所以执行x- -。因为x+ +后等于5,现在执行x- -所以是4
- 2楼网友:旧脸谱
- 2021-04-18 04:15
(y>x++)这一句的计算顺序是先比较后自增,所以答案是(5>4)值为真,所以整个式子的值等于(x--),现在来看看x的值了。
最先定义时x=4,在(y>x++)中自增一次变成5,然后又自减一次,所以x最后为4,故整个式子的值为4,希望你在检查下,最后在机器上运行下
最先定义时x=4,在(y>x++)中自增一次变成5,然后又自减一次,所以x最后为4,故整个式子的值为4,希望你在检查下,最后在机器上运行下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯