c语言数组基础知识讲解

c语言数组基础知识讲解

ID:8807732

大小:19.60 KB

页数:4页

时间:2018-04-08

c语言数组基础知识讲解_第1页
c语言数组基础知识讲解_第2页
c语言数组基础知识讲解_第3页
c语言数组基础知识讲解_第4页
资源描述:

《c语言数组基础知识讲解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数组基础知识讲解1.数组简介数组(Array)由一系列同种数据类型的元素组成。编译器可以从数组声明中知道数组中元素的数目,以及这些元素的数据类型。例如:doubledbl[20];/*包含20个double类型元素的数组*/intc[12];/*包含12个int型元素的数组*/charch[40];/*包含40个char型元素的数组*/方括号[]表明它们是数组,[]里的数字表明数组包含的元素数目。数组中的元素是相邻的,初始化之前,元素的值可能是随机的。下图形象地表现了这种相邻关系。使用数组名和下标(subscriptnumber或index)就可以访问特定的元

2、素。下标始于0,止于n-1。例如:c[0]是数组c的第一个元素,而c[11]是它的最后一个元素,也就是第12个元素。2.初始化intc[12]={0,1,2,3,4,5,6,7,8,9,10,11};如上所示,我们使用大括号中一系列逗号分隔的值来初始化数组。我们把这个称之为初始化列表。大括号是必须的!逗号和值之间的空格可有可无。初始化后,数组c的第一个元素c[0]的值为0,以此类推。下面的小程序输出数组iarr中所有元素的值。#includeintmain(void){intiarr[4]={0,1,2,3};inti=2;printf("%

3、d",iarr[0]);/*输出0*/printf("%d",iarr[1]);/*输出1*/printf("%d",iarr[i]);/*输出2*/printf("%d",iarr[1+2]);/*输出3*/return0;}如上所示,访问数组元素时,[]里的可以是常量,可以是变量,也可以是表达式。[]里还可以是返回值为整型的函数调用。总之,只要[]里的值是整数类型都可以。注意,上面的程序,如果把intiarr[4]={0,1,2,3};改成intiarr[4];(即没有初始化),则它里面的元素的值是随机的,也就是本来就存在于那段内存空间的值。如果改成int

4、iarr[4];后再把它放在intmain(void)之前,则它里面的元素的值都是0。具体原因我在后续的教程会说明。如果初始化列表中的值的个数少于数组元素个数,则余下的元素都会被初始化为0。例如:intiarr[4]={0,1};iarr[0]和iarr[1]分别为0和1;iarr[2]和iarr[3]都被初始化为0。注意,初始化列表中的值的个数可以少于数组元素个数,但是超过数组元素个数却是不对的!初始化数组时,[]里可以留空。例如:intiarr[]={1,2,3};编译器会算出初始化列表中的值的个数,然后构造包含那么多个元素的数组。如上例,编译器会算出列表

5、中一共有3个值,然后把iarr构造成包含3个元素的数组。例如:#includeintmain(void){intiarr[]={1,2,3};printf("%d",iarr[0]);/*输出1*/printf("%d",iarr[1]);/*输出2*/printf("%d",iarr[2]);/*输出3*/return0;}我们可以用以下表达式算出iarr中元素的个数:sizeofiarr/sizeofiarr[0]其中,sizeofiarr算出数组iarr占用的内存大小,sizeofiarr[0]算出iarr[0]占用的内存大小(也就是数

6、组iarr中每个元素占用的内存大小),它们相除就得出iarr的元素个数。sizeof是一个运算符,具体用法我以后会说。3.指派初始值(DesignatedInitializers)指派初始值这个特性是C99增加的,它允许我们直接初始化数组中特定的元素。C99以前,如果我们要初始化数组中的某个元素,如第三个元素,必须同时初始化它之前的元素。例如:intiarr[10]={0,0,300};而C99中,我们可以这样初始化特定的元素:intiarr[10]={[2]=300};/*指派初始化iarr[2]为300*/其余的元素都会被初始化为0。下面我们来看一个小程序

7、。#includeintmain(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]);return0;}输出为:68015从中可以看出两点:A.如果指派初始值后面还有值,则后面的值会被用于初始化后续的元素。上例中,iarr[3]被初始化为1,它后续的元素iarr[4]被初始化为5。B.如果初始化列表中多次出现对某元

8、素的初始化,则以最后一次为准。上例中,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。