- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
HZAU理学院计算机系姚娟C/C++语言程序设计(2)第2讲指针2指针数组数组的元素是指针型例:Point*pa[2];
由pa[0],pa[1]两个指针组成例1利用指针数组存放单位矩阵#includeiostreamusingnamespacestd;voidmain(){ intline1[]={1,0,0};//声明数组,矩阵的第一行 intline2[]={0,1,0};//声明数组,矩阵的第二行 intline3[]={0,0,1};//声明数组,矩阵的第三行 int*p_line[3]; //声明整型指针数组 p_line[0]=line1;//初始化指针数组元素 p_line[1]=line2; p_line[2]=line3; //输出单位矩阵coutMatrixtest:endl; for(inti=0;i3;i++)//对指针数组元素循环 { for(intj=0;j3;j++)//对矩阵每一行循环 {coutp_line[i][j];} coutendl; }}例2二维数组举例#includeiostreamusingnamespacestd;voidmain(){ intarray2[2][3]={{11,12,13},{21,22,23}};for(inti=0;i2;i++){cout*(array2+i)endl; for(intj=0;j3;j++){cout*(*(array2+i)+j);//或者coutarray2[i][j];} coutendl; }}在某次运行之后,程序的输出结果为:0065FDE011,12,130065FDEC21,22,23字符串与指针(1)说明和初始化一个字符指针:char*pstr=“It’sastring”;(2)字符串可以赋给一个字符指针:char*pstr;pstr=“It’sastring”;pstr是一个字符指针变量,实际赋给pstr的是字符串的首地址,即字符‘I’的存储地址。注意:pstr可以被赋值,因为pstr是一个存储地址的变量。charastr[]=“It’sastring”;其中astr是一个字符数组,是一个地址常量,不能被赋值。pstr=“It’sastring”;合法astr=“It’sastring”;非法例3用指针编写复制和比较字符串的函数MyStrcpy和MyStrcmp。#includeiostreamusingnamespacestd;voidmain(){ voidMyStrcpy(char*s1,char*s2); intMyStrcmp(char*s1,char*s2); chars[101],d[101]; intf; cout请输入源字符串:; gets(s); MyStrcpy(d,s); cout目标字符串为:d; f=MyStrcmp(s,d); if(!f) coutendl这两个字符串相同。; if(f0) coutendl第一个字符串较小。; if(f0) coutendl第一个字符串较大。;}voidMyStrcpy(char*s1,char*s2){ while(*s2) *s1++=*s2++; *s1=0;}intMyStrcmp(char*s1,char*s2){ while(*s1) { if(*s1-*s2)return*s1-*s2; else { s1++; s2++; } } if(*s2)return0-(unsigned)*s2; return0;}函数与指针1、以指针作为函数参数以地址方式传递数据,可以用来返回函数处理结果。实参是数组名时形参可以是指针。例4、读入三个浮点数,将整数部分和小数部分分别输出#includeiostreamusingnamesp
文档评论(0)