找天津网站建设公司做个网站多少钱上海门户网
web/
2025/9/28 23:01:43/
文章来源:
找天津网站建设公司做个网站多少钱,上海门户网,平面设计在线观看,网站开发kpiC99增加了一个新特性#xff1a;指定初始化器(designated initializer)。利用该特性可以初始化指定的数组元素#xff0c;也可以初始化指定的结构体变量。本文主要分享#xff1a;使用指定初始化器初始化数组。例如#xff0c;只初始化数组中的最后一个元素。对于传统的C初… C99增加了一个新特性指定初始化器(designated initializer)。利用该特性可以初始化指定的数组元素也可以初始化指定的结构体变量。本文主要分享使用指定初始化器初始化数组。例如只初始化数组中的最后一个元素。对于传统的C初始化语法必须初始化最后一个元素所有元素才能初始化它int arr[6] {0,0,0,0,0,212); //传统的语法
而C99规定可以在初始化列表中使用带方括号的下标指明待初始化的元素int arr[6] {[5] 212}; //把arr[5]初始化为212
对于一般的初始化在初始化一个元素后未初始化的元素都会被设置为0。下面看一段程序/* designate.c--使用指定初始化器 */
#include
#define MONTHS 12
int main (void)
{int days[MONTHS] {31,28,[4]31,30,31,[1]29};int i;for (i 0; i MONTHS; i){printf(%2d %d\n, i1, days[i]);}return 0;
}该程序在支持C99的编译器中输出如下 1 312 293 04 05 316 307 318 09 0
10 0
11 0
12 0
以上输出揭示了指定初始化器的两个重要特性【第一】如果指定初始化器后面有更多的值如该例中的初始化列表中的片段 [4] 31, 30, 31那么后面这些值将被用于初始化指定元素后面的元素。也就是说在days[4]被初始化为31后days[5]和days[6]将分别被初始化为30和31【第二】如果再次初始化指定的元素那么最后的初始化将会取代之前的初始化。本例中初始化列表开始时把days[1]初始化为28但是days[1]又被后面的指定初始化[1] 29初始化为29。如果未指定元素大小会怎样?int stuff[] {1, [6] 23};//会发生什么?
int staff[] {1, [6] 4, 9, 10}; //会发生什么?编译器会把数组的大小设置为足够装得下初始化的值。所以stuff数组有7个元素编号为0~6staff数组的元素比stuff数组多两个(即有9个元素)。声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83572.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!