【发布时间】:2012-11-14 04:59:54
【问题描述】:
阅读 C++ Primer 5th edition book,我注意到 signed char 的值为 256 是未定义的。
我决定尝试一下,我发现std::cout 不适用于那个 char 变量。 (无印刷)。
但是在 C 上,同样的事情
signed char c = 256;
将为char c 提供一个值0。
我尝试搜索但没有找到任何东西。
有人可以向我解释为什么在 C++ 中会出现这种情况吗?
编辑:我知道 256 是 2 个字节,但为什么 C++ 中的情况与 C 不同?
【问题讨论】:
-
最大值为255,256个值从0到255。
-
我知道,在 C 语言中也是如此,对吧? 255 仍然是最大值。但是为什么 C++ 没有发生同样的事情呢?
-
它们是不同的语言,C 和 C++,因此有不同的约定。
-
@CodingMash,我相信 C++ 将 C 作为子集。至少大多数书籍都是这么说的。
-
顺便说一句,它打印空字节,而不是什么