有什么区别 - 常量 int x = 5000;和常量整数 x = 50'00;在C++?

What is the difference - const int x = 5000; and const int x = 50'00; in C++?

本文关键字:常量 C++ 区别 int 5000 什么 整数      更新时间:2023-10-16

以下 c++ 代码有什么区别 -

const int x = 5000;
const int x = 50'00;

50'00使用在 C++14 中添加的数字分隔符。该数字将解析为5000,唯一的区别是它可能更容易阅读。通常你会使用数字分隔符来分隔数千个,比如1'000'000,但你可以在数字中的任何一点使用它。

自 C++14 起,您可以在整数文本中的任何位置放置数字分隔符'(除了开头或结尾或紧随基本指示符之后,不包括八进制前导零 - 否则你会与多字符文字冲突。

目的是使代码更具可读性:例如

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