一段c的代码,第一次发帖子,希望大家能帮忙。谢谢
下午同学发给我一段c的代码,我有点看不懂,望大神指教是在c free 5运行截图的#include"stdio.h"
int main()
{
int i=0,tab[]={0,1,2,3,4,5,6,7,8};
int x=8;
while( 3 & tab!=x )
{
printf("%d\n",i);
i++;
}
return 0;
}
这是运行的结果是:
可是当我改成 int x=9时: 这个只是截图了一部分,结果显示的是从0~119。
不太理解其中的原因。希望大家能给出解答。谢谢!
#include"stdio.h"
int main()
{
int i=0,tab[]={0,1,2,3,4,5,6,7,8};
int x=8;
while( tab!=x )
{
printf("%d\n",i);
i++;
}
return 0;
}
//程序改了,如果是8的话就打印0-7如果是9的话就会在内存中继续找(接着tab数组后面)满足9的数字,找到了就会打印i跳出while循环程序结束,(打印的i是随机的)!! 代码时错的。。。。。。。。。。。。。。。。。。。。。。。。。。。
错的。。。。。
错。。。。
tab!=x 。。。类型都不一样。。。还比较? 对!我觉得应该是这样
#include<stdio.h>
int main()
{
int i=0,tab={0,1,2,3,4,5,6,7,8};
int x=8;
while( 3 & tab!=x )
{
printf("%d\n",i);
i++;
}
return 0;
}
这是运行结果:
0
1
2
3
4
5
6
7
Press any key to continue
当改为9时结果应该是不变的。 本帖最后由 大黑鱼 于 2014-4-12 17:45 编辑
大黑鱼 发表于 2014-4-12 17:41 static/image/common/back.gif
对!我觉得应该是这样
#include
tab!=x,打错了,不好意思!打不上中括号?tab后加中括号里边是i
3&在这里没有实质的意义,去掉他你就懂了!相当于在打印tab数组的前几个不等于x的值 &是位运算
比如3&4
首先要转换成二进制就是
0011&0100 然后一一对应如果都是1则为1有一个是0就是0
所以 3&4 == 0000
其他的你应该都看得懂的吧
页:
[1]