C语言笔记 | 初始化器
发表于:2022-06-08 | 分类: C语言笔记

结构体的匿名初始化器

构造匿名结构体

1
2
3
4
5
6
7
struct point {
int x, y;
};
(struct point){
.x = 5,
6
}

构造只有一个元素的匿名结构体并获取地址

1
&(int){3}

结构体的指定初始化器

指定具体元素

1
2
3
4
5
6
7
8
struct point {
int x, y;
};
struct point p = {
.y = 2,
.x = 3
};
struct point p = {3, 2};

一维数组的指定初始化器

不按顺序并指定具体的元素

1
2
int a[6] = {[4] = 10, [2] = 25};
int a[6] = {0, 0, 25, 0, 10, 0};

指定范围

1
2
int a[5] = {[4] = 10, [0 ... 3] = 23};
int a[5] = {23, 23, 23, 23, 10};

指定与未指定混合

1
2
int a[5] = {11, [3] = 44, 55, [1] = 22, 33};
int a[5] = {11, 22, 33, 44, 55};

多维数组的指定初始化器

每维内与一维数组方法相同

1
2
3
4
5
6
7
8
int array[2][2] = {
[0] = {[0] = 11},
[1] = {[1] = 22}
};
int array1[2][2] = {
{11, 00},
{00, 22}
};

结构体数组的指定初始化器

1
2
3
4
5
6
7
8
struct point {
int x, y;
};
struct point pts[5] = {
[2].y = 5,
[2].x = 6,
[0].x = 2
};
上一篇:
C语言笔记 | 函数调用协议
下一篇:
C语言笔记 | 变量(Variable)