C语言数组基础知识讲解(2)

2020-12-16 10:13

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


C语言数组基础知识讲解(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:冀教版四年级英语下册Unit 3 Lesson 18 Maddy the Monster习题【

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: