相关疑难解决方法(0)

无符号和有符号整数的比较运算

请参阅此代码段

int main()
{ 
 unsigned int a = 1000;
 int b = -1;
 if (a>b) printf("A is BIG! %d\n", a-b);
 else printf("a is SMALL! %d\n", a-b); 
 return 0;
}   
Run Code Online (Sandbox Code Playgroud)

这给出了输出:a是SMALL:1001

我不明白这里发生了什么.>运算符如何在这里工作?为什么"a"小于"b"?如果它确实更小,为什么我得到一个正数(1001)作为差异?

c unsigned signed gcc

40
推荐指数
2
解决办法
4万
查看次数

为什么(sizeof(int)> -1)为false?

你可以证明以下代码:

#include<stdio.h>
int main()
{
    if(sizeof(int) > -1)
    {
            printf("\nTrue\n");
    }
    else
    {
            printf("\nFALSE\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是FALSE.....建议我的原因

c sizeof

1
推荐指数
1
解决办法
728
查看次数

标签 统计

c ×2

gcc ×1

signed ×1

sizeof ×1

unsigned ×1