当我将大于 INT_MAX 的数字分配给 int 时会发生什么?

新手上路,请多包涵

假设我为一个 int 分配了一个 11 位数字,会发生什么?我玩了一下它,我知道它给了我一些 int 范围内的其他数字。这个新号码是如何产生的?

原文由 user2817869 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 757
1 个回答

它是 实现定义的 行为。这意味着您的编译器必须提供说明在这种情况下会发生什么的文档。

因此,请查阅该文档以获得您的答案。

实现定义它的一种常见方法是将输入整数截断为 int 的位数(在必要时将无符号重新解释为有符号之后)。

C++14 标准参考:[expr.ass]/3, [conv.integral]/3

原文由 M.M 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题