- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)
您可能关注的文档
- 项目五 描述洗衣流程认识算法——了解算法及基本控制结构 课件.pptx
- 第7课 共享端午节信息 教案 南方版信息技术五年级下册.doc
- 观浏阳烟花 教案 南方版信息技术六年级下册.doc
- 《2.2计算机系统互联》教案 第一课时.docx
- 第1单元第4课《星光闪烁——用Flash动画完善首页》教学设计 2023—2024学年清华大学版(2012)初中信息技术八年级下册.docx
- 第3单元第6课《快乐猫咪--传统补间动画》教学设计 2023—2024学年清华大学版(2012)初中信息技术八年级上册.docx
- 第3单元第8课《蝴蝶飞舞--“引导层”动画》教学设计 2023—2024学年清华大学版(2012)初中信息技术八年级上册.docx
- 第4单元第9课《神奇飞熊--创建补间动画》教学设计 2023—2024学年清华大学版(2012)初中信息技术八年级上册.docx
- 第二单元第6课《数据初识》教学设计 2023—2024学年(浙江杭州专用)初中信息技术七年级上册.docx
- 第四章 控制及其设计 单元教学设计-2023-2024学年高中通用技术苏教版(2019)必修《技术与设计2》.docx
- 浙江金华市公共资源交易中心永康市分中心编外人员招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波慈溪市政协办公室招考聘用编外工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江金华永康市西溪镇人民政府招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 福建南平市公安局建阳分局招考聘用辅警笔试历年典型考题及考点研判与答案详解.docx
- 浙江嘉兴海盐县武原街道基层残疾人工作专职委员(公益岗位)招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波知识产权保护中心招考聘用工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江杭州建德市面向2024届普通高校毕业生招考聘用教师(第二批)16人笔试历年典型考题及考点研判与答案详解.docx
- 浙江省台州中学面向2024届普通高校毕业生招考聘用教师12人笔试历年典型考题及考点研判与答案详解.docx
- 湖北师范大学体育学院专任教师招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 重庆市南岸区教育事业单位面向2024届高校毕业生招考聘用114人笔试历年典型考题及考点研判与答案详解.docx
文档评论(0)