C语言教程课件第八章 数组.ppt

C语言教程课件第八章 数组.ppt

ID:57057057

大小:378.00 KB

页数:31页

时间:2020-07-30

C语言教程课件第八章 数组.ppt_第1页
C语言教程课件第八章 数组.ppt_第2页
C语言教程课件第八章 数组.ppt_第3页
C语言教程课件第八章 数组.ppt_第4页
C语言教程课件第八章 数组.ppt_第5页
资源描述:

《C语言教程课件第八章 数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章数组8.1一维数组基础8.2一维数组与指针8.3一维数组的引用8.4二维数组基础8.5二维数组与指针8.6二维数组的引用8.1一维数组基础1.一维数组的定义类型名数组名[常量表达式]说明:类型名就是数组元素的类型数组名代表内存的首地址,是地址常量常量表达式代表数组元素个数,下标从0开始数组定义后在编译时分配连续的内存空间不能用变量定义数组维数8.1.1一维数组的定义和初始化2.一维数组的初始化说明:数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值只给部分数组元素赋初值,其余元素自动补初

2、值0当全部数组元素赋初值时,可不指定数组长度当所赋1初值多于数组的元素个数时,编译时出错在定义数组时,为数组元素赋初值(在编译阶段使之得到初值)3.一维数组元素的引用数组必须先定义,后使用只能逐个引用数组元素,不能一次引用整个数组数组元素表示形式:数组名[下标]其中:下标可以是常量或整型表达式,下限为0C语言对数组不做下标越界检查8.2一维数组和指针例1数组元素的引用方法voidmain(){inta[5],*p,i;for(i=0;i<5;i++)a[i]=i+1;p=a;for(i=0;i<5;i++)printf("

3、*(pa+%d):%d",i,*(p+i));for(i=0;i<5;i++)printf("*(a+%d):%d",i,*(a+i));for(i=0;i<5;i++)printf("pa[%d]:%d",i,p[i]);for(i=0;i<5;i++)printf("a[%d]:%d",i,a[i]);}a[0]a[1]a[2]a[3]a[9]...aa+9a+1a+2地址元素下标法a[0]a[1]a[2]a[9]a[0]a[1]a[2]a[3]a[9]...pp+9p+1p+2地址元素指针法*p*(p

4、+1)*(p+2)*(p+9)[]变址运算符a[i]*(a+i)a[i]p[i]*(p+i)*(a+i)*a*(a+1)*(a+2)*(a+9)例2main(){inti,*p,a[7];p=a;for(i=0;i<7;i++)scanf("%d",p++);printf("");for(i=0;i<7;i++,p++)printf("%d",*p);}p=a;8.3一维数组的引用8.3.1数组元素作实参当调用函数时,数组元素可以作为实参传送给形参,每个数组元素和普通变量一样,对应形参必须是类型相同的变量。数组

5、元素的值可以传给该变量,在函数中只能对该变量进行操作,而不能直接引用对应数组元素。例3求输出结果voidsum(int*a){a[0]=a[1];}voidmain(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=3;i>=0;i--)sum(&aa[i]);for(i=0;i<10;i++)printf(“%d”,aa[i]);}8.3.2数组名作参数数组名作函数参数,是地址传递实参形参数组名指针变量数组名指针变量数组名数组名指针变量指针变量voidinv(intx[],intn

6、){intt,i,j,m=(n-1)/2;for(i=0;i<=m;i++){j=n-1-i;t=x[i];x[i]=x[j];x[j]=t;}}main(){inti,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);printf("Thearrayhasbeenreverted:");for(i=0;i<10;i++)printf("%d,",a[i]);printf("");}实参和形参都为数组名voidinv(int*x,intn){intt,*p,*i,*j,m=(n-1)/2

7、;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){t=*i;*i=*j;*j=t;}}main(){inti,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);printf("Thearrayhasbeenreverted:");for(i=0;i<10;i++)printf("%d,",a[i]);printf("");}实参为数组名,形参为指针voidinv(int*x,intn){intt,*i,*j,*p,m=(n-1)/2;i=x;j=x+n-1;p=

8、x+m;for(;i<=p;i++,j--){t=*i;*i=*j;*j=t;}}main(){inti,a[10],*p=a;for(i=0;i<10;i++,p++)scanf("%d",p);p=a;inv(p,10);printf("Thearrayhasbeenreverted:");fo

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

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

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