[英]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.