A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhuiyi007 中级黑马   /  2014-7-17 12:36  /  1345 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zhuiyi007 于 2014-7-17 12:44 编辑

#include<stdio.h>
void main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
我知道结果是0,我通过vc调试过了,但还是有些不太明白,请各位大神详细解答下

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

6 个回复

倒序浏览
(a>b>c)
=>(a>b)>c
=>(5>4)>3
=>1>3
=>0
回复 使用道具 举报
这就是个运算符结合性的问题。>是左结合的,所以d=(a>b>c)中,b和左边的>结合,变成d=((a>b)>c),C的关系运算符计算结果只有0和1,a>b为真,所以是1,然后1>c为假,因此d=0

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
a=5,b=4,所以判断(a>b)成立,所以为真,为1,c=3,所以判断(1>3)不成立,所以为假,为0,返回0.
回复 使用道具 举报
LZ确定没格式错误? a>b 返回的只可能是0或1,你程序的意思就是 c 跟0或1 比较大小,没什么实际意义。
我猜楼主的意思应该是这样:d = a>b && b>c;
希望能帮到你!
回复 使用道具 举报
谢谢各位的解答,过程我已经大体上明白了~~~
回复 使用道具 举报
小海 中级黑马 2014-7-18 20:57:33
7#
首先会判断工a>b,得到的结果为1,1>c再判断为0
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马