2013最新大学计算机C语言 数组.ppt
《2013最新大学计算机C语言 数组.ppt》由会员分享,可在线阅读,更多相关《2013最新大学计算机C语言 数组.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2013最新大学计算机C语言数组第九章第九章 数组数组为让计算机存储一个数据,在内存中开辟一个存储单元,形成一个变量。为让计算机存储一个数据,在内存中开辟一个存储单元,形成一个变量。若让计算机存储一组数据,在内存中开辟一片连续的存储单元,若让计算机存储一组数据,在内存中开辟一片连续的存储单元,再给他们编从再给他们编从0 0开始的号,这种带下标的变量,就称为数组。开始的号,这种带下标的变量,就称为数组。a0 a1 a2 a3 a4 a5 a6 a7三、一维数组的定义及引用举例三、一维数组的定义及引用举例三、一维数组的定义及引用举例三、一维数组的定义及引用举例例例9.19.1编写程序,定义一个含有
2、编写程序,定义一个含有30 30 个元素的个元素的intint类型数组。类型数组。依次给数组元素赋奇数依次给数组元素赋奇数1 1、3 3、55,然后按每行,然后按每行1010个顺序输出,个顺序输出,每行每行1010个逆序输出。个逆序输出。#include#define M 30main()int sM,i,k=1;for(i=0;iM;i+)si=k;k+=2;printf(“n顺序输出为:顺序输出为:n”);for(i=0;i=0;i-)printf(“%3d%c”,bi,(i%10=0)?n:);printf(“n”);有关数组的操作:有关数组的操作:有关数组的操作:有关数组的操作:一维数
3、组单层循环一维数组单层循环二维数组双层循环二维数组双层循环(外层循环控制行,内层循环外层循环控制行,内层循环 控制每一行的每一列控制每一行的每一列)补题:用数组来处理补题:用数组来处理fibonacci数列问题数列问题9.2 9.2 一维数组和指针一维数组和指针一、一维数组元素的地址一、一维数组元素的地址在在C C中规定,数组名中规定,数组名(一维和二维一维和二维)可以认为是存放地址值的可以认为是存放地址值的指针变量名指针变量名 ,其中的地址值是数组第一个数组元素的地址,其中的地址值是数组第一个数组元素的地址,也可以说是这个数组的始地址。也可以说是这个数组的始地址。int m10,*p,x m
4、=&x;m+;int m10,*p,x m=&x;m+;数组的类型也就是指针的基类型。数组的类型也就是指针的基类型。需要强调的是数组名是一个需要强调的是数组名是一个地址常量地址常量。也就是说,不能给数组名重新赋值。也就是说,不能给数组名重新赋值。a0a0 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 数组名数组名a a是这个数组的首地址,并且是一个地址常量。是这个数组的首地址,并且是一个地址常量。a=3;a+;a=3;a+;都是不合法的。都是不合法的。怎么引用数组给其赋值?怎么引用数组给其赋值?1)for(p=a,k=0;k10;k+)p=a+k;指针依次指向数组中的每
5、个元素指针依次指向数组中的每个元素.for(k=0;k10;k+)scanf(“%d”,a+k);2)for(p=a,k=0;k10;k+)p+;for(p=a,k=0;k10;k+)scanf(“%d”,p),p+;3)for(p=a,k=0;k10;k+)scanf(“%d”,p+k);总结总结:1)1)用用”数组名数组名 下标下标”来引用数组中的元素来引用数组中的元素.2)2)用用“数组名数组名+整数整数”方式引用数组中不同的元素。方式引用数组中不同的元素。3)3)用指针变量先指向数组的首地址,再通过指针称动来用指针变量先指向数组的首地址,再通过指针称动来引用引用数组中不同的元素。数组中
6、不同的元素。4)4)带下标的指针变量引用数组中的元素。带下标的指针变量引用数组中的元素。a0a0 a1a1 a2a2 a3a3 a4a4 a5a5 a6a6 a7a7 二、通过数组的首地址来引用数组元素二、通过数组的首地址来引用数组元素&a0、&a1*(&a0)、*(&a1)a0、a1a+k*(a+k)for(k=0;k10;k+)printf(“%4d”,*(a+k);for(k=0;k10;k+)printf(“%4d”,ak);三、通过指针引用一维数组元素三、通过指针引用一维数组元素for(p=a,k=0;k10;k+)printf(“%4d”,*(p+k);for(p=a,k=0;k1
7、0;k+)printf(“%4d”,pk;int *p,a10;总结:如有定义:总结:如有定义:int*p,s10,p=s;有四种引用方法及有四种引用方法及对应的地址引用方法,如下:对应的地址引用方法,如下:(1)si (2)*(s+i)(3)*(p+i)(4)pi(1)&si (2)s+I (3)p+I (4)&pi注意注意:虽然写法一样虽然写法一样,但本质不一样但本质不一样,数组名是地址常量数组名是地址常量,不可以发生改变不可以发生改变,但但p是指针变量是指针变量,可以重新赋值可以重新赋值.9.3函数之间对一维数组和数组元素的引用函数之间对一维数组和数组元素的引用一、数组元素作实参一、数组
8、元素作实参:数组元素也是代表内存中的一个存储单元数组元素也是代表内存中的一个存储单元,所以对应的形所以对应的形参必须是类型相同的变量。参必须是类型相同的变量。二、数组名作实参二、数组名作实参:(数组名是一个地址常量数组名是一个地址常量)对应的形参就应当是一个对应的形参就应当是一个指针变量,指针变量的基类型必须与数组类型一致。指针变量,指针变量的基类型必须与数组类型一致。例例9.2编写程序,通一个函数给主函数中定义的数组输入若干个大于或等于编写程序,通一个函数给主函数中定义的数组输入若干个大于或等于0的整数,用负数作为结束标志,调用另一个函数输出该数组中的数据。的整数,用负数作为结束标志,调用另
9、一个函数输出该数组中的数据。#include#define M 100void arrout(int*,int);int arrin(int*);main()int sM,k;k=arrin(s);arrout(s,k);int arrin(int*a);int i,x;i=0;scanf(“%d”,&x);while(x=0)*(a+i)=x;i+;scanf(“%d”,&x);return i;void arrout(int*a,int n)int i;for(i=0;in;i+)printf(i+1)%5=0?”%4dn”:”%4d”,*(a+i);printf(“n”);当数组名作实参
10、时,对应当数组名作实参时,对应的形参可以写成:的形参可以写成:(1)arrin(int*a)(2)arrin(int a)(3)arrin(int aM)三、数组元素地址作为实参三、数组元素地址作为实参:对应的形参也应当是基类型相同的指针变量。对应的形参也应当是基类型相同的指针变量。例例9.39.3编写函数编写函数,对具有对具有1010个元素的个元素的charchar类型数组类型数组,从下标为从下标为4 4的元素的元素开始开始,全部设置星号全部设置星号“*”“*”,保持前保持前4 4个元素中的内容不变个元素中的内容不变.#include#define M 10#define B 4voide
11、setstar(char *,int);voide arrout(char*,int);main()char cM=A,B,C,D,E,F,G,H,I,J;setstar(&c4,M-B);arrout(c,M);void setstar(char*a,int n)int i;for(i=0;in;i+)*(a+i)=*;void arrout(char*a,int n)int i;for(i=0;in;i+)printf(“%c”,ai);printf(“n”);函数首部还可以写成:函数首部还可以写成:void setstar(char a,int n)void setstar(char a
12、M-B,int n)四、函数的指针形参和函数体中数组的区别四、函数的指针形参和函数体中数组的区别#include#define N 10int*fun(int aN,int n)int bN;return b;main()int wN,*p;p=fun(w,N);(1)(1)函数函数funfun中中,形参形参a a在被写作是在被写作是aN,aN,也可以写作也可以写作aa或者是或者是*a,a,无论是哪种无论是哪种形式形式,C,C都将其作为一个指针变量处理都将其作为一个指针变量处理.通过函数调用通过函数调用,将将w w数组的起始地址存数组的起始地址存入入a a中中,使它指向了使它指向了w w数组数
13、组.所以这里的所以这里的a,a,可以进行可以进行a+.a+.(2)Fun(2)Fun函数中的数组函数中的数组b,b,只是一个数组只是一个数组,不能进行重新赋值操作不能进行重新赋值操作.b b和和a a有完全不同的函义有完全不同的函义.9.4 9.4 一维数组应用举例一维数组应用举例对于数组处理的程序,编写函数可以从对于数组处理的程序,编写函数可以从三个方面考虑:数组的输入、三个方面考虑:数组的输入、数组的处理、数组的输出。然后根据每个问题的不同情况灵活运用。数组的处理、数组的输出。然后根据每个问题的不同情况灵活运用。9.4,编写程序编写程序,定义一个含有定义一个含有15个元素的数组个元素的数组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2013最新大学计算机C语言 数组 2013 最新 大学计算机 语言
限制150内