在嵌入式 C 语言的 C89/C90 标准里面,要求程序员在初始化程序中的各个变量元素时,要以固定的顺序进行,并且要与被初始化的数组和结构体的元素顺序相同。 在后来的新标准 C99/C11 里面,新增加了一个灵活且好用的特性:指定初始化器(Designated Initialize),这个新特性可以允许程序员在初始化数组或结构体时,可以指...
通过上述代码,我们也可以知道,二维数组的指定初始化器的方法中,第一个[]里的数字表示的是初始化的二维数组的行数,而在{}内的则是对当前行的元素进行初始化,实际也就是说{}内的初始化方法也就和一维数组的一样了,一维数组可行的方法,二维数组也是可行的。 应用# 在讲述了数组指定初始化器的基本概念之后,我们...
通过上述代码,我们也可以知道,二维数组的指定初始化器的方法中,第一个[]里的数字表示的是初始化的二维数组的行数,而在{}内的则是对当前行的元素进行初始化,实际也就是说{}内的初始化方法也就和一维数组的一样了,一维数组可行的方法,二维数组也是可行的。 #应用 在讲述了数组指定初始化器的基本概念之后,我们...
/* designate.c--使用指定初始化器 */#include<stdio.h>#defineMONTHS12intmain(void){int days[MONTHS]={31,28,[4]=31,30,31,[1]=29};int i;for(i=0;i<MONTHS;i++){printf("%2d %d\n",i+1,days[i]);}return0;} 该程序在支持C99的编译器中输出如下: 代码语言:javascript 复制 13122930405...
代码语言:javascript 复制 The Valueofn is:21 也就是说,如果未给出数组的大小,则最大的初始化位置确定数组的大小 二维数组的指定初始化器 二维数组同样可以采用指定初始化器的方法,下面是一个二维数组的初始化: 代码语言:javascript 复制 int array[2][2]={[0]={[0]=11},[1]={[1]=22},}; ...
C语言指定初始化器解析及其应用 指定初始化器的概念 C90 标准要求初始化程序中的元素以固定的顺序出现,与要初始化的数组或结构体中的元素顺序相同。但是在新标准 C99 中,增加了一个新的特性:指定初始化器。利用该特性可以初始化指定的数组或者结构体元素。
[导读]由于笔者能力有限,文中如果出现错误的地方,欢迎大家给我指出来,我将不胜感激,谢谢~ 指定初始化器的概念 C90 标准要求初始化程序中的元素以固定的顺序出现,与要初始化的数组或结构体中的元素顺序相同。但是在新标准 C99 中,增加了一个新的特性:指定初 ...
6.1 C语言标准和编译器 后续精彩内容,上QQ阅读APP免费读 上QQ阅读看本书,新人免费读10天 登录订阅本章 > 6.2 指定初始化 后续精彩内容,上QQ阅读APP免费读 上QQ阅读看本书,新人免费读10天 登录订阅本章 >
利用指定初始化器的特性,我们可以这样定义并初始化一个数组: int a[6] = {[4] = 10,[2] = 25}; 1. 上述的初始化就等同于如下方式: int a[6] = {0,0,25,0,10,0}; 1. 可以看到通过这种方式能够不按照顺序,且指定具体的元素进行初始化。
这样的初始化也就等同于下述代码: int array1[2][2] = { {11,00}, {00,22}}; 1. 通过上述代码,我们也可以知道,二维数组的指定初始化器的方法中,第一个[]里的数字表示的是初始化的二维数组的行数,而在{}内的则是对当前行的元素进行初始化,实际也就是说{}内的初始化方法也就和一维数组的一样了,...