- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 指针和引用.ppt
课堂练习 ? *(*(a+i)+j)代表什么意思 ? *a[i]+j 代表什么意思 执行以下程序段后,m的值为() int m,*p,a[2][3]={{1,2,3},{4,5,6}}; p=a[0][0]; m=(*p)*(*(p+2))*(*(p+4)); 若有“int a[][4]={1,2,3,4,5,6,7,8,9,10},*p=*(a+1);”则值为9的表达式是() A.p+=3,*p++ B. p+=4, *(p++) C. p+=4,*++p D. p+=4, ++*p 指针和二维数组利用指针将二维数组排序 int *p=a[0][0]; //p=a[0]; for(i=0;i15;i++) for(j=i+1;j16;j++) if(*(p+i)*(p+j)) { temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp; } 指针和字符串 通常把字符串作为一个整体来使用,用指针处理字符串更加紧凑和方便,当用指针指向字符串时,并不关心存放字符串的数组的大小,只关心是否处理到字符串的结束标记。 指针和字符串 可用字符数组首地址对字符型指针赋值 直接将字符串赋给字符型指针 char *s=“I am a student!” 一旦对字符型指针赋值后,也可通过指针名直接输出字符串。couts; 对字符型指针赋值前,不允许对指针输入字符串 s I am a student!\0 2100 2100 指针和字符串注意点 字符串不能直接赋值给字符数组,但字符串可直接赋值给字符指针 char *s ; s=“ABC” ; 字符数组的起始地址不允许改变,指针的值可以改变 不能将指针赋给数组名,可以将数组名赋给字符型指针 课堂练习 设有“char a[6],*p=a;”下列表达式中正确的赋值语句是() A.a[6]= “Hello”; B. a= “Hello”; C. *p= “Hello”; D. p=”Hello”; 程序的输出是? void main() { char *p1= “abcd”; char str[50]= “xyz” strcpy(str+2,p1+2); coutstrendl; } 课堂练习 void main(void) {char str[]=abcdca123123; int count[128],i; char *p=str; for(i=0;i127;i++) count[i]=0; while(*p) count[*p++]++; for(i=0;i127;i++) if (count[i]) cout(char)i count[i]endl; } 指针数组 若干个同类型指针变量的集合,其定义形式为: 类型 *数组名[数组长度说明] int a[3]={10,20,30}; int *p[3]; for(int i=0;i3;i++) p[i]=a[i]; *p[i]与a[i]等价! 10 20 30 a p 指针数组 char *s[4]={“open”,”new”,”save”,”save as”}; cout*s[1]‘\n’s[1]; ?用字符数组如何存放这四个字符串 new open save as save S[0] S[1] S[2] S[3] 指针数组 char s[4][8]= {“open”,”new”,”save”,”save as”}; 用于存储多个字符串时,字符型指针数组相对于二维字符数组大大节省了存储空间! 可利用指针数组实现 字符串的排序! P152 例8.9 S[0] S[1] S[2] S[3] \0 s a e v a s \0 \0 \0 \0 e v a s \0 \0 \0 \0 \0 w e n \0 \0 \0 \0 n e p o 指向一维数组的指针变量(行指针) int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},*p; p=a; 是否正确?为什么 只有行指针可以用行地址赋值! int (*p)[4]; //p是指向四个元素空间的行地址 p=a; //a的列数必须和p数组的大小一致 p=p+1; cout(*p)[2]; *(*(p+i)+j)、*(p[i]+j)、*(*(a+i)+j)、*(a[i]+j) 等价! 指向指针的指针变量(多级指针) 如果变量p中存放的是指针变量q的地址,那么p
您可能关注的文档
- 第01章 C语言程序设计教程电子教案.ppt
- 第01章 压缩软件winrar ppt.ppt
- 第01章:基本操作.pdf
- 第02章:绘制草图.pdf
- 第 4 章 创意21非线性编辑系统.ppt
- 第04章 SQL Server与数据查询.ppt
- 第04章+创建与编辑图像的选区.ppt
- 第05-1章:放样特征.pdf
- 第05-2章:放样特征.pdf
- 第05章solidedge上机.doc
- 年三年级数学下册第三四单元过关检测卷新人教版.docx
- 第十三章轴对称(复习课)1.ppt
- 15.1.2分式基本性质(2).ppt
- 期末冲刺(补全对话30道).docx
- 【华创证券-2025研报】2025年二季报公募基金十大重仓股持仓分析.pdf
- 【港交所-2025研报】景福集团 截至2025年3月31日止年度年报.pdf
- 【天风证券-2025研报】2025中报前瞻:关注预告日至财报日的景气超额.pdf
- 【国金证券-2025研报】连连数字(02598):跨境支付先行者,前瞻布局虚拟资产.pdf
- 【第一上海证券-2025研报】云工场(02512):云工(02512):IDC方案服务商,边缘云业务打造第二成长曲线.pdf
- 【东方证券-2025研报】主动权益基金2025年二季报全解析:重点关注科技医药双主线和中小盘高成长主题基金.pdf
文档评论(0)