C++ 花括号 { } 初始化总结

在C++11及以后的版本中,花括号{}语法在不同语境下有不同的用法,下面总结使用{}的常见场景:

1 列表初始化

List Initialization
{}可以使用列表初始化的方式初始化对象,包括内置类型,数组,容器等。如:

int x = {5};            // x被初始化为5
std::vector<int> v = {1, 2, 3};  // 用三个元素初始化一个数组
int arr[] = {1, 2, 3};  // 用三个元素初始化一个数组

列表初始化确保初始化是充分定义的。

2 值初始化

Value Initialization
在某些情况下,{}会用零或者默认值来初始化一个对象,如:

int x{};       // x被初始化为0
double d{};    // x被初始化为0

对于没有初始化构造函数的对象,可以使用值初始化的方式。

3 空初始化

Empty Initialization
在某些情况下,{}会将对象初始化为空,如:

std::string s{};      // 初始化一个空字符串
std::vector<int> v{}; // 初始化一个空容器
char arr[10]{}; //初始化一个空数组

4 指针的空初始化

Empty Initialization of Pointers
{}可以将指针初始化nullptr,表示其暂时不指向任何对象。

int* ptr{};         // 将指针初始化为nullptr
std::shared_ptr<int> sp{};  // 将共享指针初始化为nullptr

C++ 花括号 { } 初始化总结_c++ {}-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值