- 1、本文档共744页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
方法四:用指针变量法引用数组元素。 #include stdio.h main( ) { int a[10],i,*p; p=a; for(i=0;i10;i++) scanf(%d,p+i); for(i=0;i10;i++) printf(%2d,*(p+i)); } 方法五:通过指针变量的自增运算引用数组元素。 #include stdio.h main( ) { int a[10],*p; for(p=a;pa+10;p++) scanf(%d,p); for(p=a;pa+10;p++) printf(%2d,*p); } 三、指针变量的运算 指针变量可以进行某些运算,但其运算的种类是有限的。它只能进行赋值运算和部分算术运算及关系运算。 1.指针变量的算术运算 设p1和p2是指向数组a[]的指针变量,n为整型变量,则指针可进行下列算术运算。 (1)p+n或p-n:使指针p向后(+n)或向前(-n)移动n个元素的位置。 (2)p1-p2:结果为一个带符号的整数,表示两个数组元素相隔的元素个数。 另外,当使指针向后或向前移动一个元素的位置时,常用指针变量与“++”和“--”运算符结合的形式,需要注意下面一些表示形式的含义。 (1)*p++: 等价于*(p++),先得到*p的值,再做p++。 *p--: 等价于*(p--),先得到*p的值,再做p--。 (2)*(++p): p先自增1,再得到*p的值。 *(--p): p先自减1,再得到*p的值。 (3)(*p)++: 使*p的值加1。 (*p)--: 使*p的值减1。 2.指针变量的关系运算 当两个指针指向同一数组中的元素时,它们之间还可以进行关系运算。例如: (1)p1p2,p1p2:两指针大小比较,表示两指针所指数组元素之间的前后位置关系。 (2)p1==p2,p1!=p2:判断两指针是否相等,若指向同一个变量则相等,否则不等。指针变量还可以与0比较。设p为指针变量,则p==0表明p是空指针,它不指向任何变量;p!=0表示p不是空指针。 8.2.4 指针变量作函数参数 一、指向变量的指针作函数参数 【例8.3】用指向变量的指针作函数参数,实现两个整数的交换。 #include stdio.h void swap(int *p1,int *p2) //指针变量作形参 { int temp; temp=*p1; *p1=*p2; *p2=temp; } main() { int a,b; scanf(%d,%d,a,b); swap(a,b); //调用swap()函数 printf(%d,%d\n,a,b); } 注意:如果将例8.3中的swap()函数写成以下形式,则不能实现两数的交换。 void swap(int *p1,int *p2) { int *temp; //定义指针变量 temp=p1; p1=p2; p2=temp; } 二、指向数组的指针作函数参数 【例8.4】用指针变量作实参,数组名作形参,计算一维数组各元素的平均值。 #include stdio.h float average(int p[],int n) //数组名作形参 { int i,sum=0; float ave; for(i=0;in;i++) sum=sum+p[i]; ave=(float)sum/n; return(ave); } main() { int i,a[10],*pa; float aver; for(i=0;i10;i++) scanf(%d,a[i]); //下标访问法 pa=a; //把数组首地址赋给指针变量pa aver=average(pa,10); //指针变量作实参 printf(average=%.2f\n,aver); 【例8.5】分别用指针变量作形参和实参,计算一维数组各元素的平均值。 #include stdio.h float average(int *p,int n) //指针变量作形参 { int i,sum=0; float a
您可能关注的文档
- 全套课件单片机原理及应用设计(第二版)-电子教案-胡辉.ppt
- 全套课件景观小品设计-电子教案-刘娜.ppt
- 全套课件常用工具软件实用教程-电子教案-刘毅-51701396.ppt
- 全套课件大学计算机基础(第三版)——基于Windows 7和Office 2010环境-电子教案-何振林.pptx
- 全套课件广告设计-电子课件(PDF)-段嵘.pdf
- 全套课件Linux操作系统的应用与管理项目化教程-电子教案-邹承俊.ppt
- 全套SSH框架项目教程-电子教案-陈俟伶.doc
- 精品全套C语言程序设计(第二版)-电子教案-马晓晨.ppt
- 精品全套课件建筑材料与检测-电子教案-李念国-.ppt
- 全套课件建筑材料与检测-电子教案-李念国-精品.ppt
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)