发新帖我要提问
12
返回列表
打印

看看你的C语言水平如何-- <测试1>

[复制链接]
楼主: mindshare
手机看帖
扫描二维码
随时随地手机跟帖
21
fanxing789| | 2012-5-30 13:54 | 只看该作者 回帖奖励 |倒序浏览
不懂.学习了.我用汇编

使用特权

评论回复
22
mindshare|  楼主 | 2012-5-31 17:00 | 只看该作者
细节决定成败 :)

使用特权

评论回复
23
seaman_003| | 2012-6-1 17:50 | 只看该作者
第一题:j=10;i=2: 因为i和j都是unsigned int型,所以i-j后的值的MSB为1,但仍然以unsigned int型来读取,所以其值大于0.

使用特权

评论回复
24
chinayangbo2012| | 2012-6-5 15:05 | 只看该作者
无符号(i-j)怎么>=0能成立呢?

使用特权

评论回复
25
mindshare|  楼主 | 2012-6-5 16:21 | 只看该作者
本帖最后由 mindshare 于 2012-6-5 16:35 编辑

1.
     i=2;j=10;无符号问题,无符号不可能小于0
2.
     if(i=j)  //条件是否为真,取决于i的值,i非0为真
3.
      char *message3  = "Hello";
      这里message3是一个指向常量的指针,不能对写其指向的内容

使用特权

评论回复
26
mindshare|  楼主 | 2012-6-5 16:25 | 只看该作者
typedef struct TEST_S
{
        int a;
        int b;
        struct TEST_S *test;
}TEST_D;  // TEST_S  *用标号定义一个指针,指针的大小是确定的,正确用法

typedef struct TEST_S
{
        int a;
        int b;
        struct TEST_S test;
}TEST_D;   // 用TEST_S标号定义一个 test,应为TEST_S还没有确定,所以,造成**生蛋,蛋生**的问题

typedef struct TEST_S
{
        int a;
        int b;
        TEST_D *test;
}TEST_D;  // TEST_D 还是未定义的类型,无法在之前就使用,错误
4.
typedef struct TEST_S
{
        int a;
        int b;
        TEST_D test;
}TEST_D;    // TEST_D还没有定义完全,无法用其定义test

使用特权

评论回复
27
mindshare|  楼主 | 2012-6-5 16:27 | 只看该作者
int main(void)
{
        int n = 2;

        if(n>=3)
             return
        n++;
        n++;
        n++;
        printf("%d \n",n);
        return 0;
}

这个完全是细节问题,只是考察,在C语言中即使不小心遗漏了分号,编译器也不一定会报错,从而会导致逻辑错误
n=4

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则