- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一讲 指针(二)
第十一讲 指针(二) 学习目标: 掌握指向数组元素的指针变量的定义和引用 理解数组元素的两种引用方法 熟练应用数组名与指针变量作函数参数时的传参方式 掌握指向字符串的指针变量的定义和引用 学习重点 指向数组元素的指针变量的应用 数组名与指针变量作函数参数时的传参方式 指向字符串的指针变量的定义和引用 字符串与指向字符串的指针变量作函数参数的传参方式 学习难点: 数组名与指针变量作函数参数时的传参方式 字符串与指向字符串的指针变量作函数参数的传参方式 4.3 指 针 与 数 组 数组及其元素同样占有存储单元,都有相应的地址。因此指针变量可以指向数组,也可以指向数组元素 指向数组元素的指针变量 定义与赋值 这种定义方式与指向变量的指针变量的定义相同。 int a[5] , *p; 指针变量p可以指向任何整型变量,因此也可以指向数组a的任一元素。例如: p=a[0]; 表示p指向数组的第一个元素a[0] 4.3 指 针 与 数 组 指向数组元素的指针变量 定义与赋值 C语言规定,数组名代表数组的首地址,也是第一个数组元素的地址。因此上面的赋值语句等价于: p=a; 指向数组元素的指针也可以在定义时赋初值。 int *p=a[0]; 或 int *p=a; 4.3 指 针 与 数 组 引用 如有以下的定义和赋值:int a[5], *p=a[1]; 则可以通过指针运算符*来对数组元素进行引用。例如: *p=10; 表示对p所指向的数组元素a[1]赋值 上式等价于 a[1]=10; C语言规定,如果p指向一个数组元素,则p+1表示指向数组该元素的下一个元素。假设p=a[0],则p+1表示数组元素a[1]的地址。 对于不同类型的数组元素,p值的改变是不同的。如果数组元素为int型,p+1就意味着p的值加上2,这才能指向数组的下一个元素。 4.3 指 针 与 数 组 引用 如果p的初值是a[0],那么: p+i和a+i都可以表示元素a[i]的地址,即它们都指向数组的第i个元素。a代表数组首地址,a+i也是地址,它的计算方法与p+i相同。 *(p+i) 和*(a+i)都表示指针p+i或a+i所指向的数组元素a[i]的值。 由此可见,引用一个数组元素可以有两种方法: 下标法,如a[i]。 指针法,如*(p+i)。 4.3 指 针 与 数 组 引用 程序L10 4.C功能:输出数组中的全部元素 #include stdio.h void main() { int *p,i; int a[5]={1,2,3,4,5}; p=a; for (i=0;i5;i++) printf(%d\t ,a[i]); printf(“\n”); for (i=0;i5;i++) printf(%d\t ,*(p+i)); } 4.3 指 针 与 数 组 引用 当指向数组元素的指针变量p等于数组名时,p+i与a+i都指向数组的第i个元素, 但是二者使用时仍然有区别。因为作为指针变量的p可以实现自身值的改变,例如p++,使p的值自增。而数组名a是一个代表数组首地址的常量,它自身的值是不能改变的,即a++是不合法的。 指向数组元素的指针变量可以自增或自减,大大方便了数组元素的操作。 4.3 指 针 与 数 组 引用 程序L10 5.C功能:输出数组中的全部元素 #include stdio.h void main() { int *p,i; int a[5]={1,2,3,4,5}; p=a; printf(\n); for (;pa+5;p++) printf(%d\t,*p); } 4.3 指 针 与 数 组 数组名作函数参数 数组名作为函数参数时,在函数调用时,是把实参数组的首地址传递给形参数组,使得两个数组共同占用同一段内存空间,这样形参数组中的元素值如发生变化就会使实参数组的元素值也同时变化。 这种地址的传递也可以不用数组名来进行,而使用本讲中学到的指针变量。实参和形参都可以分别使用数组名或指针变量。对应情况有以下四种: 实参: 数组名 数组名 指针变量 指针变量 形参: 数组名 指针变量 数组名 指针变量 4.3 指 针 与 数 组 程序L10_6.C功能:已知一个一维数组,求其中前n个数的和。n由键盘输入。 #include stdio.h int sum(int *q,int n) { int i,s=0; for (i=0;in;i++,q++)
您可能关注的文档
最近下载
- 储能技术-全套PPT课件.pptx
- 高中高考备考经验课件.pptx VIP
- 黄精种植项目可行性研究报告写作范文.doc VIP
- 项目2 2.3 植物根&茎&叶的形态与结构观察(课件)-《植物生产与环境》(高教版第4版)同步精品课堂.pptx VIP
- 项目2 2.3 植物的营养器官(4)(课件)-《植物生产与环境》(高教版第4版)同步精品课堂.pptx VIP
- 教学副校长在全体教师大会上发言:听好每一节课,走好专业每一步.docx
- 磁力泵试题及答案.docx VIP
- 一种利福霉素S-Na盐的合成方法.pdf VIP
- 项目2 2.3 植物的营养器官(3)(课件)-《植物生产与环境》(高教版第4版)同步精品课堂.pptx VIP
- WHO《数据完整性指南》2021(中英文对照版).docx VIP
文档评论(0)