gpt4 book ai didi

c++ - int x{}; 之间有区别吗?和int x = 0;?

转载 作者:IT老高 更新时间:2023-10-28 22:17:44 31 4
gpt4 key购买 nike

我理解 int x{}; 是一种默认初始化,但它和写 int x = 0; 完全一样吗?

最佳答案

在这种情况下结果是一样的。

int x{}; is a kind of default-initialization

不完全是。见 default initialization .

int x{};value initialization (C++11 起),

This is the initialization performed when a variable is constructed with an empty initializer.

在这种情况下值初始化的影响(即既不是类类型也不是数组类型)是:

4) otherwise, the object is zero-initialized.

终于 zero initialization 的效果在这种情况下是:

If T is a scalar type, the object's initial value is the integral constant zero explicitly converted to T.

另一方面,int x = 0;copy initialization ; x 用值 0 初始化。

正如@PaulR 提到的,int x{}; 仅在 c++11 中支持,而 int x = 0 没有这样的限制。

关于c++ - int x{}; 之间有区别吗?和int x = 0;?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35911501/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com