C++ 基本类型限制安全性

C++ 基本类型限制安全性,c++,primitive-types,C++,Primitive Types,考虑到我是一个32位的应用程序(即使它不会改变任何东西),这段代码安全吗 cout << (numeric_limits<unsigned int>::max() + 1) << endl; cout无符号整数类型遵循算术模2^N的规律。这种情况下的结果将始终为0,不会覆盖任何其他内存。无符号整数类型遵循算术模2^N的规律。这种情况下的结果将始终为0,不会覆盖任何其他内存。C++标准草案,§3.9.1.4要求: 声明为无符号的无符号整数应遵守算术模2n定律,

考虑到我是一个32位的应用程序(即使它不会改变任何东西),这段代码安全吗

cout << (numeric_limits<unsigned int>::max() + 1) << endl;

cout无符号整数类型遵循算术模2^N的规律。这种情况下的结果将始终为0,不会覆盖任何其他内存。

无符号整数类型遵循算术模2^N的规律。这种情况下的结果将始终为0,不会覆盖任何其他内存。

C++标准草案,§3.9.1.4要求:

声明为无符号的无符号整数应遵守算术模2n定律,其中n是该特定整数大小的值表示中的位数

所以你问题中的代码需要输出0,这是模运算法则所要求的


请注意,上面提到的规则不适用于
char
,因为它没有声明为
unsigned
(您需要使用
unsigned char

C++标准草案,§3.9.1.4要求

声明为无符号的无符号整数应遵守算术模2n定律,其中n是该特定整数大小的值表示中的位数

所以你问题中的代码需要输出0,这是模运算法则所要求的


请注意,上面提到的规则不适用于
char
,因为它没有声明为
unsigned
(您需要使用
unsigned char

是的,我知道,但这只是为了弄清楚其中的细节。谢谢!:)是的,我知道,但这只是为了弄清楚其中的细节。谢谢!:)这个问题究竟与封闭理性有何关系?这个问题究竟与封闭理性有何关系?