永发信息网

printf("%d",i<j == j<k);

答案:4  悬赏:10  手机版
解决时间 2021-03-21 08:01
printf("%d",i<j == j<k);
最佳答案
printf("%d",i’,‘>’优先级高于‘==’符号,然后==符号的结合性是从左向右,因此,先求值i假设int i = 0, j = 5, k=3;
那么根据上面表述,i假设int i = 0, j = 3, k=5;
那么根据上面表述,i
全部回答
  • 1楼网友:末日狂欢
  • 2021-03-20 17:00
前面的两位回答的很明确 。
  • 2楼网友:爱难随人意
  • 2021-03-20 15:56
把这个表达式分开就明白了
首先 分析ii然后 再比较返回值 是否相等 仍然是个bool类型
"%d" 格式符需要一个数字类型
因此c/c++将做隐式转换,把bool类型转换为 0或者!0
windows 下 将为转换为 0或者1
  • 3楼网友:孤老序
  • 2021-03-20 15:34
在c语言中布尔类型是用整数表示的,0表示假,非0表示真。
但一般的编译器都把运算得到的真赋值为1。
所以如果ij然后再把两个结果做一个==运算,如果相等就得到1,不相等得到0。
所以最后打印的值不是0就是1。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯