直接上示例了
#includestruct student_st { char c; int score; const char *name; }; static void show_student(struct student_st *stu) { printf("c = %c, score = %d, name = %s\n", 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; }
運行結果:
如果想初始化結構體數組,可采用 {{ }, { }, { }} 方式,如
struct student_st stus[2] = { { .c = 'D', .score = 94, /*也可以只初始化部分成員*/ }, { .c = 'D', .score = 94, .name = "Xxx" }, };