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