chap2_数组指针.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chap2_数组指针

对字符串的处理: 1 字符数组 char s[]=“program”; 2 字符指针变量 char *t=“program”; 指针与字符串 \0 m p r o g r a s char s[]=“program”; char s[20]; s=“program”;//??? strcpy(s,”program”); \0 m p r o g r a t char *t=“program”; char *t; t=“program”; #includeiostream.h void main() { char *p=program; for(;*p!=‘\0’;p++) coutpendl; } 若为: coutp++endl; cout*pendl; 若指针变量s里存放的是另一个指针变量t的地址,则s称为二级指针,就是指向指针的指针。 二级指针 二级指针的定义: #includeiostream.h void main() { int i=5,*p=i,**pp=p; couti=i\t*p\t**pp\n; couti=i\tp\t*pp\n; coutp=p\tpp\n; } pp p i 5 必须通过一级指针 数据类型 **指针变量名; 指针数组 定义 数据类型 *数组名[数组长度说明]; 例如:int *p[4]; p[0] p[1] p[2] p[3] p 指针数组的初始化: char *p[ ]={“Follow me”, “BASIC”, “Great Wall”, “FORTRAN”}; 指针数组指向多个变量或一维数组 int a,b,c,x[4]; int *p[3]={a,b,c}; *q[ ]={x[0],x[1] ,x[2],x[3]}; 字符型指针数组的初始化 char s1[20],s2[20]; char *ps[]={s1,s2}; 指针数组指向二维数组 int a[4][5]; int p[]={a[0],a[1] ,a[2],a[3]}; int a[4][5],*p[4]; for(int i=0;i4;i++) p[i]=a[i]; p[0] p[1] p[2] p[3] Follow me BASIC Great Wall FORTRAN p #includeiostream.h #includestring.h void main() { char *p[4]={“Tianjin,“Beijing, Sichuan,“Shanghai}; char *temp; for (int i=0;i4;i++) coutp[i]\t; for (i=0;i3;i++) for(int j=0;j3-i;j++) if(strcmp(p[j],p[j+1])0) { temp=p[j]; p[j]=p[j+1]; p[j+1]=temp; } for(i=0;i4;i++) coutp[i]endl; } 避免大量数据的移动问题 //如何交换内容? 将若干字符串按英文字典由小到大排序 指针数组处理字符串 为指针数组初始化 #includeiostream.h void main() { int a[2][3],*p[2],i,j; p[0]=a[0]; p[1]=a[1]; for (i=0;i2;i++) for (j=0;j3;j++) a[i][j]=(i+1)*(j+1); for (i=0;i2;i++) for (j=0;j3;j++) cout*(p[i]+j)endl; } 指针数组处理二维数组 a[0] a[1] a[1][2] a[1][1] a[1][0] a[0][2] a[0][1] a[0][0] int a[2][3]; a[i][j] 的地址:a[i][j] a[i]+j *(a+i)+j a[i][j]: *(a[i]+j ) *(*(a+i)+j) #includeiostream.h void main() { int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for(i=0;i4;i++) p[i]=a[i*3]; cout *(p[3]+2) endl; // *(*(p+3)+2), p[3][2] } p[0] p[1] p[2] p[3] 指针数组处理一维数组 数组指针与二维数组 数组指针:数据类型 (*数组指针)[

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档