结构体的初始化

定义一个结构体:

#define LENGTH 256

struct book
{
	char title[LENGTH];
	char author[LENGTH];
	float value;
}; 
 

 

初始化方法:

 

(1)使用一个花括号括起来、逗号分隔的初始化项目列表进行初始化。每个初始化项目必须和要初始化的结构体成员类型相匹配。(类似于数组的初始化)

例如:

 

struct book java = {
	"Thinking in Java",
	"Bruce Eckel",
	108.00
};
 

(2)结构体的指定初始化项目

C99支持结构体的指定初始化项目,其语法与数组的指定初始化项目相似。只是,结构的指定初始化项目使用点运算符和成员名(而不是方括号和索引值)来标识具体的元素。例如,只初始化book结构的成员value,

struct book java={.value = 108.00};

可以按任意的顺序使用指定初始化项目:

struct book java = {
	.value = 108.00,
	.author = "Bruce Eckel",
	.title = "Thinking in Java"
};

正像数组一样,跟在一个指定初始化项目之后的常规初始化项目为跟在指定成员后的成员提供了初始化值。另外,对特定成员的最后一次赋值是它实际获得的值:

struct book java = {
	.value = 108.00,
	.auther = "Bruce Eckel",
	100
};

value的最终值为100。

 

注:这种结构体的初始化方式在Linux内核代码中很常见

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值