- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言九一..ppt
回顾指针 2.int **p,*a,b=10; *p=a; *a=b; 思考:用变量存储一系列数据,如学号? 用int i=001,j=002,h=003…….w=024…? 如何简化解决,开辟一系列空间用变量可以连续存放一系列数据或字符 为什么要使用数组3-3 本章要点 9.1 一维数组的定义和引用 int a[8]; 1.int 是类型名,只能存放整型 2.a是数组名 3.数组a中有8个元素,分别为a[0],a[1]…a[7].即下标从0开始 4.执行完此语句的结果是:为数组a分配8个连续的单元,每个单元占4个字节 理解:数组a中有8个变量,变量名称依次为a[0],a[1]…a[7]. 为一维数组动态赋值 数组应用1 数组应用2 一维数组和指针 指针:存放一个变量地址的变量(指向一个变量) 9.2一维数组和指针 C语言中,数组名可以认为是一个存放地址值的指针变量名,其中的地址值是数组第一个元素的地址。注意这个指针变量中的地址值不可以改变,可以认为数组名是一个地址常量! 例如:int a[2];数组名a可以认为是一个指针变量名,存的是数组的第一个元素a[0]的地址值 注意:float a[10],*p,x; a=x;//不合法,声明一个数组的同时,a的值就确定了,永远指向a数组的首地址 a++ ;不合法 在数组中给指针赋初值: int* p,a[2]; p=a[0];合法 p=a;合法 通过指针从终端读入数据; for(p=a,k=0;k10;k++) {scanf(“%d”,p),p++}; 通过数组从终端读入数据; for(k=0;k10;k++) scanf(“%d”,a[k]) 9.2.3通过数组的首地址引用数组元素 1.int a[7]; a相当于是指针变量,是数组元素的首地址。 则: a值相当于a[0] a+1相当于a[1]… 思考:*a,*(a+1)代表什么呢? * a[0],* a[1]代表什么呢? *a和* a[0]即为 a[0] *(a+1)和* a[1]即为a[1] *(a+k)和* a[k]即为a[k] a[i]:a数组第i个元素的值; a[i]:a[i]元素的地址; a[i]的地址:a+i=a+i*(一个元素所占的字节数); 9.2.3通过指针引用数组元素 1.int a[7],*p; p=a; p=a[0]; 则:对于数组元素a[0],可以用*p引用;a[1]可以用*(p+1)引用,a[k]可以用*(p+k)引用 int *p,s[10],i; p=s; 总结: 表示数组s中的第i个元素: s[i],*(p+i),*(s+i),*s[i],p[i] 表示数组s中的第i个元素地址: s[i],p+i,s+i, 注意: 虽然数组名s可以看做一个指针变量,但是s是不可变的,而p是可变的。即s++,s=p…都是不合法的 例:输出数组中的全部元素 有三种方法: (1)main() { int a[10];int i; for(i=0;i10;i++) scanf(“%d”,a[i]); printf(“\n”); for(i=0;i10;i++) printf(“%d”,a[i]); } 9.3函数之间对一维数组和数组元素的引用 1、数组元素作实参 当调用函数时,数组元素可以作为实参传送给形参,和普通变量一样,即传值调用。形参的改变不会影响实参的值 2、数组名作实参 数组名也可以作为实参传送,数组名本身是一个地址值,因此是地址值的传递。形参数组和实参数组共占同一存储单元,因此形参的改变会影响实参的值。 以数组名作参数时,实参数组必须定义为具有确定长度的数组,形参数组可以不定义具体长度。 例题9.2编写程序,通过一个函数给主函数中定义的数组输入若干大于或等于0的整数,用负数作为结束标志;调用另一个函数输出该数组中的数据。 分析: main{声明一个数组s; 调用一个子函数1给数组赋值; 调用一个子函数2输出数组的值} 子函数1{ 当大于等于0时一直输入;} 子函数2{ 依次输出数组元素的值} #includ
文档评论(0)