51Testing软件测试论坛

标题: 确认C语言代码 [打印本页]

作者: peterleo1983    时间: 2008-7-29 23:07
标题: 确认C语言代码
#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呢?
(初学语言,希望大家不吝赐教!谢谢了!)
作者: jinjinjin19.    时间: 2008-7-30 10:47
y=0<=x<=10;
0<=x<=10;此为真,故结果为1
作者: heroing    时间: 2008-7-30 23:09
2楼正解。
y=(0<=x)<=10
这样写应该能明白了吧?
不明白再留言。
作者: hzlovewl    时间: 2008-8-1 19:52
3楼正解。
y=((0<=x)<=10)
这样写应该能明白了吧?
不明白再留言。
作者: jernifer    时间: 2008-8-2 18:55
不是吧,赋值是从右算起的。应是“y=(0<=(x<=10));因为x<=10为真,即把1赋值给x,0<=1为真,所以0<=x<=10值为真,即y值为1.
作者: hzlovewl    时间: 2008-8-2 20:13
y右边的=是赋值,《=怎么是赋值?这是关系运算符,是从左到右的




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2