51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2263|回复: 5
打印 上一主题 下一主题

[讨论] 确认C语言代码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-7-29 23:07:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "stdio.h"
main()
{
  int x,y,z,a,b,c,d;
  
  x=1;y=2;
  z=++x || ++y;
  printf("x=%d\n",x);
  printf("y=%d\n",y);
  
  a=-1;b=-2;
  c=++a && b++;
  printf("a=%d\n",a);
  printf("b=%d\n",b);
  
  x=-8;
  y=0<=x<=10;
  printf("y=%d\n",y);
}
--------------------------
各位老大们,以上这段C语言代码输出结果是如下:
x=2
y=2
a=0
b=-2
y=1
-----------------------------------------------
现小弟请教,Y为何会最后成了1呢?
(初学语言,希望大家不吝赐教!谢谢了!)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-7-30 10:47:27 | 只看该作者
y=0<=x<=10;
0<=x<=10;此为真,故结果为1
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-7-30 23:09:23 | 只看该作者
2楼正解。
y=(0<=x)<=10
这样写应该能明白了吧?
不明白再留言。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-8-1 19:52:07 | 只看该作者
3楼正解。
y=((0<=x)<=10)
这样写应该能明白了吧?
不明白再留言。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-8-2 18:55:52 | 只看该作者
不是吧,赋值是从右算起的。应是“y=(0<=(x<=10));因为x<=10为真,即把1赋值给x,0<=1为真,所以0<=x<=10值为真,即y值为1.
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-8-2 20:13:35 | 只看该作者
y右边的=是赋值,《=怎么是赋值?这是关系运算符,是从左到右的
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-24 01:59 , Processed in 0.072460 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表