java 结构体数组初始化_C数组&结构体&联合体快速初始化

背景C89标准规定初始化语句的元素以固定顺序出现,该顺序即待初始化数组或结构体元素的定义顺序。C99标准新增指定初始化(Designated Initializer),即可按照任意顺序对数组某些元素或结构体某些成员进行选择性初始化,只需指明它们所对应的数组下标或结构体成员名。GNU C将其作为C89模式的扩展。借助指定初始化特性,可实现数组或结构体元素的快速初始化。1数组初始化在数组初始化列表中使...
摘要由CSDN通过智能技术生成

背景

C89标准规定初始化语句的元素以固定顺序出现,该顺序即待初始化数组或结构体元素的定义顺序。

C99标准新增指定初始化(Designated Initializer),即可按照任意顺序对数组某些元素或结构体某些成员进行选择性初始化,只需指明它们所对应的数组下标或结构体成员名。GNU C将其作为C89模式的扩展。

借助指定初始化特性,可实现数组或结构体元素的快速初始化。

1数组初始化

在数组初始化列表中使用“[index常量表达式]=value”形式可对index所指定的某个元素进行初始化。如:

int arr[6] = { [0]=5, [1]=6, [3] =10, [4]=11 }; 或

int arr[6] = { [0]=5, 6, [3] =10, 11 }; 或

int arr[6] = { [3] =10, 11, [0]=5, 6 }; (指定顺序可变)

均等效于:int arr[6] = {5, 6, 0, 10, 11, 0};

说明:

1) 若在某个指定初始化项目后跟有不至一个值,如[3]=10,11。则多出的数值用于对后续的数组元素进行初始化,即数值11用来初始化arr[4]。

2) C数组初始化一个或多个元素后,未初始化的元素将被自动地初始化为0或NULL(针对指针变量)。未经过任何初始化的数组,所有元素的值都是不确定的。

当下标是字符或属于枚举类型时,标识数组初始化语句的元素特别有用。如:

int whitespace[256] = {

[' '] = 1, [&#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值