直接上示例了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <stdio.h> struct student_st { char c; int score; const char *name; }; static void show_student(struct student_st *stu) { printf( "c = %c, score = %d, name = %s
" , stu->c, stu->score, stu->name); } int main( void ) { // method 1: 按照成员声明的顺序初始化 struct student_st s1 = { 'A' , 91 , "Alan" }; show_student(&s1); // method 2: 指定初始化,成员顺序可以不定,Linux 内核多采用此方式 struct student_st s2 = { .name = "YunYun" , .c = 'B' , .score = 92 , }; show_student(&s2); // method 3: 指定初始化,成员顺序可以不定 struct student_st s3 = { c: 'C' , score: 93 , name: "Wood" , }; show_student(&s3); return 0 ; }</stdio.h> |
运行结果:
如果想初始化结构体数组,可采用 {{ }, { }, { }} 方式,如
1 2 3 4 5 6 7 8 9 10 11 12 13 | struct student_st stus[ 2 ] = { { .c = 'D' , .score = 94 , /*也可以只初始化部分成员*/ }, { .c = 'D' , .score = 94 , .name = "Xxx" }, };
|