- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言知识第9章1-王厚财
复习:
1.指针的定义与赋初值
2.指针的基类型
3.指针的运算
4.指针数组与行指针
5.指向函数的指针和函数的返回值为指针及指针作函数的参数
讲授新课:
第9章 指针、数组、函数的进一步讨论
9.1 指针与数组
一个变量有地址,一个数组包括若干个元素,每个数组元素都在内存中占用不同的存储单元,都有相应的地址。指针变量可以指向变量,当然也可以指向数组元素。
9.1.1一维数组与指针
1.一维数组名和数组元素的地址
(1)一维数组的数组名
一个数组是由连续的一块内存单元组成的。数组名就是这块连续内存单元的首地址。一个数组也是由各个数组元素组成的。每个数组元素按其类型占有连续几个的内存。一个数组元素的地址是指它所占有的几个内存的首地址。数组元素i)就等价于*( a[i] ),即等价于a[i]。
2.通过指针来引用一维数组元素
(1)用指针来表示一维数组的数组元素的地址值
有以下定义:
int a[5],*p,k;
p=a;或p=a[0];指针变量p指向a[0],我们可以用p(即p+0)的值即等于a[0]的地址,p+1的值即等于a[1]的地址,p+i的值即等于a[i]的地址。
还可以用移动指针的方法来使p指向各个数组元素。
for(m=0;m5;m++)scanf(“%d”,p++); /*每循环一次,使p后移,指向下一个元素*/
(2)用指针来引用一维数组的数组元素
p+i的值即等于a[i]的地址,可以通过*(p+i)来引用数组元素a[i]。
p是指针变量,指针变量可以移动,可以通过移动指针来引用a数组的每个元素:
for(p=a,m=0;m5;m++){printf(“%5d”, *p);p++;}
则表示数组元素的表达式有以下四种:
a[m] *(a+m) *(p+m) p[m]
例9.1 使用不同的方法访问数组元素。
#include “stdio.h”
main()
{ int a[5]={1,2,3,4,5},m,*p;
for(m=0;m5;m++)
printf(“%5d”,a[m]); /*通过数组名加下标的方法*/
printf(“\n”);
for(m=0;m5;m++)
printf(“%5d”,*(a+m)); /*通过各元素的地址来引用*/
printf(“\n”);
for(m=0;m5;m++)
printf(“%5d”,*(p+m)); /*通过指针变量p来引用*/
printf(“\n”);
for(m=0;m5;m++)
printf(“%5d”, p[m]); /*通过指针变量加下标的方法*/
printf(“\n”);
for(m=0;m5;m++)
printf(“%5d”, *p++); /*通过移动指针,再通过间接访问*/
printf(“\n”);
}
注意:如果指针变量不是指向数组的首地址,大家应该注意指针变量加中括号的方法跟数组名加中括号的区别。例如:
int a[6],*p;
p=a[2];
如果有以上的定义和赋值语句,再引用p[0],此时p指向a[2],p[0]相当于*(p+0),即引用的是a[2]这个数组元素;引用p[1],相当于*(p+1)即a[3];以次类推。但应注意:最大只能引用到p[3],这时,p已经指到数组a的最后一个元素,再往后已经没有意义了。
9.1.2二维数组与指针
用指针变量可以指向一维数组中的元素,也可以指向二维数组中的元素。定义:int a[3][4];
文档评论(0)