c语言中,a<x<b与x>a&&x<b是等价的吗?

[复制链接]
查看11 | 回复4 | 2011-12-30 21:01:40 | 显示全部楼层 |阅读模式
不等价在0<x<20中,0<x会先判断其布尔值,即得出的结果为0或者1,再将得到的0或者1与后面的20比大小得出第二个布尔值0<x&&x<20就是数学上的x的取值范围...
回复

使用道具 举报

千问 | 2011-12-30 21:01:40 | 显示全部楼层
答案是10,1跟0,在c语言中,a<xa&&x<b是不等价的,主要是指他们的运行速度不一样,第一条打印语句是先执行0<x,成立,条件为真,即变为1跟20比较,1<20,同样也成立,结果为1,打印输出1。。第二条打印语句是由右向左执行,即先执行x<20,条件为假,值为0,与上0<x,同样假,打印输出0...
回复

使用道具 举报

千问 | 2011-12-30 21:01:40 | 显示全部楼层
直观上看,第一句,应该是0(就是将0<x<20不等式判断的布尔值结果一十进制输出)第二句:应该是x与x的内存分配地址相与再判断不等式的布尔值吧,但是x的内存地址好像不确定,应该是随即分配的,所以编译器不同,第二句的结构应该不同。...
回复

使用道具 举报

千问 | 2011-12-30 21:01:40 | 显示全部楼层
printf("%d",0<x<20);这个语句是错误的。在c中不能这么做!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行