繁体   English   中英

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

[英]what is the difference between x=10 & x{10}?

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

#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 在范围内,并且行为没有区别。

在此示例中,没有功能差异。 两种情况下的结果是相同的。

从技术上讲,第一个是“复制初始化”,第二个是“直接初始化”,存在这种差异很重要的情况,但在这里不重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM