c++ - x=10 和 x{10} 有什么区别?

标签 c++

我是编程新手,我看到了两种类型的变量初始化。 int x=10 && int x{10} 有什么区别? 在这种情况下,int 是一个类而 x 是一个对象吗?

#include <iostream>
using namespace std;
int main() {
    int x=10;
    int y{10};
    return 0;
}

最佳答案

不同之处在于,编译器会检查值 10 是否在 y 类型的范围内,而不是缩小转换.

例如,如果在 int 恰好是 32 位的系统上将它们都设置为 40 亿...

int x=4'000'000'000;
int y{4'000'000'000};

...然后需要第二行来产生编译器错误。

但在您的情况下,10 在范围内并且行为没有差异。

关于c++ - x=10 和 x{10} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63104829/

相关文章:

c++ - 如何实现非 constexpr `std::initializer_list` 样式构造函数

c++ - 如何使Windows的备忘录无法聚焦或标签高度=其内容的大小?

C++如何在程序崩溃之前将某些内容写入日志文件

c++ - 替换并写入文件 C++

c++ - 无法从初始化列表中的 lambda 中推断出类型

c++ - 如何正确移植 Wine-only 函数 GetMulti ByteString?

C++ 为什么在定义的编译和链接之前引用外部实例的程序

c# - SeDebugPrivilege() api 函数是否与 System.Diagnostics.Process.EnterDebugMode 相同?

c++ - 如何在 C++11 中将 Unix 时间戳字符串转换为 time_t?

c++ - gcc 预编译 header 与 -c 选项的奇怪行为