C:为什么整数充当长整数?

标签 c integer range variable-assignment long-integer

据我所知,整数的范围是 32,768 到 32,767。 长整数的范围是 2,147,483,648 到 2,147,483,647。 我仔细检查了维基百科以确保。

现在的问题:

int a=2147483647;
printf("a: %d\n", a);

为什么会这样?如果我将 1 添加到 2147483647 然后它打印垃圾,如果变量是一个长整数,这是可以预期的。但为什么它允许我首先将一个长整数分配给一个整数?

最佳答案

From what I know an integer is in the range of 32,768 to 32,767.

这是不正确的。 int的范围至少是 -32,767 到 32,767;它可能具有更大的范围,并且在大多数 32 位和 64 位平台上都是如此。

你可以找出int的范围通过检查 INT_MAX 在您的平台上输入和 INT_MIN <limits.h> 中定义的宏.

关于C:为什么整数充当长整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267658/

相关文章:

c - 从文本文件中读取并显示字符串

c - 当未连接的代码行取消注释时,为什么此 C 程序会检测到字符串中的两个 '\0' 字符?

使用BLAS对整数类型进行矩阵乘法

c - float和int的内存表示

javascript - 日期时间 javascript jquery 的 slider 。需要建议

mysql - 查找日期范围内商店中存储架的可用性

c - C 中的 for 循环中的变量 x 发生了什么?

c - C:如何按频率编号和字母顺序从可变数量的文件中对单词进行排序

algorithm - 如何仅在一个时钟周期内获得 32 位输入的平方根?

java - finally block 末尾的参数索引超出 mysql 范围