码迷,mamicode.com
首页 > 编程语言 > 详细

C语言结构体初始化的三种方法

时间:2015-03-30 21:15:01      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:c语言   linux   结构体   struct   初始化   

直接上示例

#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\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"
	},
};

C语言结构体初始化的三种方法

标签:c语言   linux   结构体   struct   初始化   

原文地址:http://blog.csdn.net/a_ran/article/details/44755759

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!