【数组】C99的新特性:指定初始化项目

【声明】除Thinking外完全摘自《C Primer中文版》。本渣仅做读书笔记学习之用。

C99增加了一种新特性L:指定初始化项目(designated initalizer)。此特性允许选择对某些元素进行初始化。

C99规定,在初始化列表中使用带有方括号的元素下标可以指定某个特定的元素:

int days[MONTHS] = {31, 28, [4] = 31, 30, 31, [1] = 29};


1 31

2 29

3 0

4 0

5 31

6 30

7 31

8 0

9 0

10 0

11 0

12 0

从输出结果可以看出指定初始化项目有两个重要特性:

1、如果在一个指定初始化项目后跟有不止一个值,如[4] = 31,30,31中这样,则这些数值用来对后续的数组元素初始化。也就是说,把31赋给days[4]后,接着把30,31赋给days[5], days[6];

2、如果多次对一个元素进行初始化,则最后一次有效。


Thinking:

int days[MONTHS] = {31, 29, 31, 30, [0] = 29, 30, 31};

输出结果为

1 29

2 30

3 31

4 0

5 0

6 0

7 0

8 0

9 0

10 0

11 0

12 0


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值