9.3 指针与数组(课件)-《C语言程序设计》同步教学(西安电子科技大学出版社).pptxVIP

9.3 指针与数组(课件)-《C语言程序设计》同步教学(西安电子科技大学出版社).pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

C语言程序设计

2023

翻转课堂实用教程

9.3指针与数组

9.3.1指针与数组知识点

数组名:数组的首地址,第一个元素的地址。

若数组array元素类型为Type,则array值就和array[0]一致,array的类型为Type*类型的指针常量。

系统在为数组分配一块连续的内存空间后,数组的首地址就已经确定了,除非销毁,不会改变,所以为指针常量。

为什么数组名是一个指针常量?

9.3.1指针与数组知识点

举例:

int*p,array[5]={30,20,50,10,40};

p=array;

p的值为array[0],*p为array[0]

p+i表示相对于当前指针p往后偏移i个整数的位置

(1)采用指针访问数组

array[0]array[1]array[2]array[3]array[4]

30

20

50

10

40

arrayarray+1array+2array+3array+4

pp+1p+2p+3p+4

9.3.1指针与数组知识点

(1)采用指针访问数组

采用指针获取数组元素、地址的方式

元素获取内容

array[0]

array[1]

array[2]

array[3]

array[4]

获取元素的值

array[0]

*array

*p

p[0]

array[1]

*(array+1)

*(p+1)

p[1]

array[2]

*(array+2)

*(p+2)

p[2]

array[3]

*(array+3)

*(p+3)

p[3]

array[4]

*(array+4)

*(p+4)

p[4]

获取元素的地址

array[0]

array

p

array[1]

array+1

p+1

array[2]

array+2

p+2

array[3]

array+3

p+3

array[4]

array+4

p+4

参见9.3.2章节中案例9.3.1的代码及运行结果

数组名可以作为指针来使用,指针变量可以作为数组形式来使用。

9.3.1指针与数组知识点

(1)采用指针访问数组

指针变量与数组名,两者有什么区别呢?

(1)p为指针变量,数组array是指针常量。

p=array+i,

array=array+i。

(2)作为sizeof运算符的操作数时

sizeof(array):为array所代表的整个数组占用的总字节数。

sizeof(p):为p指针占用的字节数

数组名不可以作为赋值=左边的操作数。

9.3.1指针与数组知识点

(1)采用指针访问数组

举例:

intarray[5]={30,20,50,10,40},*p=array+2;

p-1是?

p+2是?

利用指针p,可以随机从某一个元素开始往前往后访问数组元素。

array[2]前面一个元素,p-1为array[1]

p+2为array[4]

9.3.1指针与数组知识点

(2)指针间的比较运算

当两个指针均指向同一个数组中的元素时,两个指针可以进行两类运算:

关系运算:≠

相减的运算

9.3.1指针与数组知识点

(2)指针间的比较运算

举例:

intarray[5]={30,20,50,10,40};

int*p1=array[3],*p2=array,*p;

30

20

50

10

40

array

p1

p2

①以下式子成立:

p1p2、p2p1、p1≠p2

p1-p2为3

基于上面的比较运算,使用指针p作为循环变量,p:[array,array[4]],p++,可以遍历数组array的所有元素。

for(p=array;p=array[N-1];p++){

printf(%d,*p);

}

for(p=array;parray+N;p++){

printf(%d,*p);

}

9.3.2指针与数组案例分析

案例9.3.1指针与数组关系的应用

#includestdio.h

#defineN10

intmain(){

int*p,array[N],i;

p=array;

for(i=0;iN;i++){

scanf(%d,array+i);

}

//输出元素的地址,每两个一行

for(i=0;iN;i++){

printf(%#X,(array+i));

if((i+1)%2==0i!=9)printf(\n)

您可能关注的文档

文档评论(0)

中小学教学资料 + 关注
实名认证
服务提供商

小学、初中、高中信息科技教案、试卷、课件等教学资源

1亿VIP精品文档

相关文档