900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C语言骚操作:结构体初始化方法

C语言骚操作:结构体初始化方法

时间:2020-10-03 07:55:53

相关推荐

C语言骚操作:结构体初始化方法

首先定义俩结构体:

typedef struct {int a0;int b0;}S0;typedef struct {int a1;int b1;S0 s0;}S1;

首先想到的初始化方法是:

S0 s;s.a0 = 1;s.b0 = 2;S1 ss;ss.a1 = 3;ss.b1 = 4;ss.s0 = s;

或者是:

S0 s = {1, 2};S1 ss= {3, 4, s};

但是很多人不知道其实还可以这样初始化(用大括号括起来的病省略掉结构体名字的初始化方法,同样适用于结构体数组的初始化):

S0 s0 = {.a0 = 1,.b0 = 2,};S1 s1[10] = {[0 ... 9] = {.a1 = 3,.b1 = 4,.s0 = s0,}};

这种结构体数组初始化不要太方便的说。直接用这个点省略繁琐的结构体名,更有数组直接使用省略号初始化。

整体的代码:

#include <stdio.h>#include <stdlib.h>typedef struct {int a0;int b0;}S0;typedef struct {int a1;int b1;S0 s0;}S1;int main(int argc, char **argv){S0 s0 = {.a0 = 1,.b0 = 2,};S1 s1[10] = {[0 ... 9] = {.a1 = 3,.b1 = 4,.s0 = s0,}};printf("%d\n", s1[2].s0.a0);return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。