鱼C论坛

 找回密码
 立即注册
查看: 5486|回复: 6

一段c的代码,第一次发帖子,希望大家能帮忙。谢谢

[复制链接]
发表于 2014-4-12 16:42:48 | 显示全部楼层 |阅读模式
4鱼币
下午同学发给我一段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[i]!=x )
        {
                printf("%d\n",i);
                i++;
        }

        return 0;
}


这是运行的结果是: 截图01.jpg

可是当我改成 int x=9时: 截图00.jpg 这个只是截图了一部分,结果显示的是从0~119。

不太理解其中的原因。希望大家能给出解答。谢谢!

最佳答案

查看完整内容

//程序改了,如果是8的话就打印0-7如果是9的话就会在内存中继续找(接着tab数组后面)满足9的数字,找到了就会打印i跳出while循环程序结束,(打印的i是随机的)!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-12 16:42:49 | 显示全部楼层
#include"stdio.h"

int main()
{
    int i=0,tab[]={0,1,2,3,4,5,6,7,8};
    int x=8;
    while( tab[i]!=x )
    {
        printf("%d\n",i);
        i++;
    }
    
    return 0;
}
//程序改了,如果是8的话就打印0-7如果是9的话就会在内存中继续找(接着tab数组后面)满足9的数字,找到了就会打印i跳出while循环程序结束,(打印的i是随机的)!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-12 16:45:24 | 显示全部楼层
代码时错的。。。。。。。。。。。。。。。。。。。。。。。。。。。
错的。。。。。
错。。。。
tab!=x 。。。类型都不一样。。。还比较?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-12 17:41:51 | 显示全部楼层
对!我觉得应该是这样

#include<stdio.h>

int main()
{
        int i=0,tab[i]={0,1,2,3,4,5,6,7,8};
        int x=8;
      
        while( 3 & tab[i]!=x )
        {
                printf("%d\n",i);
                i++;
        }

        return 0;
}
这是运行结果:
0
1
2
3
4
5
6
7
Press any key to continue
当改为9时结果应该是不变的。
[/i]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-12 17:43:43 | 显示全部楼层
本帖最后由 大黑鱼 于 2014-4-12 17:45 编辑

tab!=x,打错了,不好意思!打不上中括号?tab后加中括号里边是i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-12 23:36:21 From FishC Mobile | 显示全部楼层
3&在这里没有实质的意义,去掉他你就懂了!相当于在打印tab数组的前几个不等于x的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-13 00:27:14 | 显示全部楼层
&是位运算
比如3&4
首先要转换成二进制就是
0011&0100 然后一一对应如果都是1则为1有一个是0就是0
所以 3&4 == 0000
其他的你应该都看得懂的吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-27 09:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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