如何统一初始化一个C语言的11维数组?

2026-04-17 00:390阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1146个文字,预计阅读时间需要5分钟。

如何统一初始化一个C语言的11维数组?

在C++98/03中,对象的初始化方法多样,以下是一些示例:

cpp// 初始化数组int i_arr[3]={1, 2, 3};

// 初始化结构体数组struct B { int i; int j;};struct A { int x; B b;};A a={1, {2, 3}};

// 初始化POD(Plain Old Data)类型struct POD { int i; double d;};POD pod={4, 5.5};

我们知道,在 C++98/03 中的对象初始化方法有很多种,请看下面的代码:

//初始化列表 int i_arr[3] = { 1, 2, 3 }; //普通数组 struct A { int x; struct B { int i; int j; } b; } a = { 1, { 2, 3 } }; //POD类型 //拷贝初始化(copy-initialization) int i = 0; class Foo { public: Foo(int) {} } foo = 123; //需要拷贝构造函数 //直接初始化(direct-initialization) int j(0); Foo bar(123); 这些不同的初始化方法,都有各自的适用范围和作用。最关键的是,这些种类繁多的初始化方法,没有一种可以通用所有情况。

为了统一初始化方式,并且让初始化行为具有确定的效果,C++11 中提出了列表初始化(List-initialization)的概念。

POD 类型即 plain old data 类型,简单来说,是可以直接使用 memcpy 复制的对象。

阅读全文

本文共计1146个文字,预计阅读时间需要5分钟。

如何统一初始化一个C语言的11维数组?

在C++98/03中,对象的初始化方法多样,以下是一些示例:

cpp// 初始化数组int i_arr[3]={1, 2, 3};

// 初始化结构体数组struct B { int i; int j;};struct A { int x; B b;};A a={1, {2, 3}};

// 初始化POD(Plain Old Data)类型struct POD { int i; double d;};POD pod={4, 5.5};

我们知道,在 C++98/03 中的对象初始化方法有很多种,请看下面的代码:

//初始化列表 int i_arr[3] = { 1, 2, 3 }; //普通数组 struct A { int x; struct B { int i; int j; } b; } a = { 1, { 2, 3 } }; //POD类型 //拷贝初始化(copy-initialization) int i = 0; class Foo { public: Foo(int) {} } foo = 123; //需要拷贝构造函数 //直接初始化(direct-initialization) int j(0); Foo bar(123); 这些不同的初始化方法,都有各自的适用范围和作用。最关键的是,这些种类繁多的初始化方法,没有一种可以通用所有情况。

为了统一初始化方式,并且让初始化行为具有确定的效果,C++11 中提出了列表初始化(List-initialization)的概念。

POD 类型即 plain old data 类型,简单来说,是可以直接使用 memcpy 复制的对象。

阅读全文