【发布时间】:2021-11-25 10:44:30
【问题描述】:
我浏览了很多文档,但仍然没有得到 C 中数据类型使用的大小,可能所有编程语言都是如此。
假设我们声明了一个像“int = a”这样的变量,我们都知道数据类型“int”的大小为4字节(暂时忘记拱形计算机,这是为了简单起见)它可以保存值从 -2^31 到 2^31 – 1 即 [0 到 4,294,967,295]。
现在的问题是,每个字符或字母或数字都存储为 8 位或一个字节,所以如果 int 只有 4 个字节作为数据类型大小,如何存储像 200,000 甚至最大值这样的数字4,294,967,295。
没有具体的文档可以解释数据类型的确切大小。
【问题讨论】:
-
不是以字符形式存储的,而是以二进制数形式存储的。
-
4 x 8 是 32,你有什么疑问?
-
C 和 C++ 是两种非常不同的语言。如果您询问 C 中的行为,请仅标记 C。
-
@Someprogrammerdude 整数的表示是一样的。这是一个跨越许多编程语言的非常普遍的问题。
-
至于数据类型的大小,除了
sizeof(char) == 1和sizeof(char) <= sizeof(short) && sizeof(short) <= sizeof(int) && sizeof(int) <= sizeof(long long)之外,没有任何保证。另请注意,即使sizeof(char) == 1得到保证(由规范),这并不意味着char是单个8 位字节。有些系统带有 C 编译器,其位数可能是7或9。在某些系统中,char确实是16位,但sizeof(char)仍然等于1。