【发布时间】:2018-06-18 07:26:46
【问题描述】:
下面的c++代码有什么区别-
const int x = 5000;
const int x = 50'00;
【问题讨论】:
-
其次需要C++14或更高版本。
标签: c++ constants variable-assignment
下面的c++代码有什么区别-
const int x = 5000;
const int x = 50'00;
【问题讨论】:
标签: c++ constants variable-assignment
50'00 使用在 C++14 中添加的digit separator。该数字将解析为5000,唯一的区别是它可能更易于阅读。通常您会使用数字分隔符来分隔千位,例如1'000'000,但您可以在数字中的任何位置使用它。
【讨论】:
1'000'000'000'000 将写作1'00'000'00'00'000。因此,该语言不强制分组。)
从 C++14 开始,您可以将 数字分隔符 ' anywhere 放在整数字面量内(除了开头或结尾或紧跟在基本指示符不包括八进制前导零 - 否则您会与 多字符文字 发生冲突。)
目的是使代码更具可读性:例如
const int x = 5'000;
或者,使用印度符号(解释了任何地方的基本原理)
const auto x = 12'34'567;
或者,十六进制
const auto x = 0xee'ef;
请注意,1e3 之类的 类型 是 double,它可能会咬你一口,尤其是在 for 循环中用作计数器时。
参考:https://en.cppreference.com/w/cpp/language/integer_literal
【讨论】: