C语言数组基础知识讲解
初始化数组时,[] 里可以留空。例如:
intiarr[] = { 1, 2, 3 };
编译器会算出初始化列表中的值的个数,然后构造包含那么多个元素的数组。如上例,编译器会算出列表中一共有 3 个值,然后把iarr构造成包含 3 个元素的数组。例如: #include <stdio.h>
int main(void)
{
intiarr[] = { 1, 2, 3 };
printf("%d ", iarr[0]); /* 输出 1 */
printf("%d ", iarr[1]); /* 输出 2 */
printf("%d ", iarr[2]); /* 输出 3 */
return 0;
}
我们可以用以下表达式算出iarr中元素的个数:
sizeofiarr / sizeofiarr[0]
其中,sizeofiarr算出数组iarr占用的内存大小,sizeofiarr[0] 算出iarr[0] 占用的内存大小(也就是数组iarr中每个元素占用的内存大小),它们相除就得出iarr的元素个数。sizeof是一个运算符,具体用法我以后会说。
3. 指派初始值(Designated Initializers)
指派初始值这个特性是 C99 增加的,它允许我们直接初始化数组中特定的元素。C99 以前,如果我们要初始化数组中的某个元素,如第三个元素,必须同时初始化它之前的元素。例如: intiarr[10] = { 0, 0, 300 };
而 C99 中,我们可以这样初始化特定的元素:
intiarr[10] = { [2] = 300 }; /* 指派初始化iarr[2] 为 300 */
其余的元素都会被初始化为 0 。下面我们来看一个小程序。
#include <stdio.h>
int main(void)
{
intiarr[5] = { 6, 3, [3] = 1, 5, [1] = 8};
printf("%d ", iarr[0]);
printf("%d ", iarr[1]);
printf("%d ", iarr[2]);
printf("%d ", iarr[3]);
printf("%d ", iarr[4]);
return 0;
}
输出为:
6
8
1
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C语言数组基础知识讲解(2)在线全文阅读。
相关推荐: