已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 9章 指 针 第 9章 指 针 (针的基本概念 针与一维数组 针与二维数组 针与字符串 针与函数 针数组与多级指针 针的基本概念 # a=10; x= 1 02 0 . 5内 容地 址2 0 0 02 0 0 22 0 0 6变 量 量的地址及指针 地址也称为指针 针变量 1指针变量的定义 a; p=&a; 或 a,*a; 2 0 0 0p 0 02 0 0 62 指针变量的引用 (1) &: 取地址运算符 (2) *: 指针运算符 (或称间接访问运算符 ) 例如: a=6, * .004 2006 2005 整型变量 a 6 指针变量 001 2002 2003 例如: a , * ; a; 2000 例如: *8; 28 【例 两个指针变量交换指向。 # a=10,b=20,*a,*b,*p; a=%d,b=%d,*d,*dn,a,b,* p=p1=p2=p; a=%d,b=%d,*d,*dn,a,b,* 运行结果如下: a=10,b=20,*0,*0 a=10,b=20,*0,*0 p& 1 0a& 2 0b( a ) p 1 、 p 2 初 始 指 向p& 1 0a& 2 0b( b ) p 1 、 p 2 修 改 后 的 指 向3使用指针应注意的几种情况 (1) 在指针变量中只能存储地址 ,例如: a, *p, *q; p=2000; /* 不正确 */ q=&a; /* 正确 */ (2)语句“ a, *p=&a;” 与“ a, *p; p=&a;” 是等价的 但“ a, *p; *p=&a;”中的赋值语句是错误的。 (3) 悬挂指针 指针变量的值不确定的指针称为悬挂指针。 如: p; *p=56; 针运算 1指针之间的赋值运算 2指针与整数的加、减运算 3指针相减运算 4指针之间作关系运算 例如: x,*x; p1=例如: a4=10,11,12,13,*pa=a; pa=; 1 0内 容数 组 1 11 22 0 0 02 0 0 22 0 0 42 0 0 61 3a 0 a 1 a 2 a 3 a 、 p ap a + 1如果两个指针指向 同一数组的元素上,则两指针相减,其 绝对值 的物理意义是两指针间相距多少个元素。 指针间作关系运算,可以判断指针是否指向 同一数组 或同一元素 上。 针作为函数的参数 【 例 编写函数 交换两个变量的值。 # a, b; x, y); %f%f,&a,&b); a,&b); a=%b=%n,a,b); x,y) t; t=*x; *x=*y; *y=t; 程序运行情况: a=b=针与一维数组 维数组元素的表示 1下标表示法和指针表示法 a5=10, 11, 12, 55, 14; 下标表示法 : a i 指针表示法 : *(a+i) 1 0内 容数 组 1 11 22 0 0 02 0 0 22 0 0 42 0 0 65 51 4a 0 a 1 a 2 a 3 3a 4 2 0 0 8 【例 查看数组元素的 地址 及数组元素的 值 。 # i,a4=10,11,12,13; i=0;i a10, i, j, s; p; p=a; p i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i i,t,a5,*p,*i=0;i t,b10=2,6,7,0,9,5,3,1,8,4; i,j,k; a ,n); i=0;iaj) k=j; t=ak;ak=ai;ai=t; 运行结果如下: 2 6 7 0 9 5 3 1 8 4 0 1 2 3 4 5 6 7 8 9 【 例 编写函数,完成在有序数组中插入一个数,使数组仍然有序。 # i,n,x; a, x, m); /* 函数声明 */ b10=2,3,6,9,21,30; n=6; /* 用 */ %d,&x); /* 输入要插入的数 x */ b,x,&n); /* 函数调用 */ i=0;i=0; if( a34, i,j,*i=0;i a44, (*p)4 , s1,s2,i,j,n,m; i=0;i *x)4, n, m ) i,j; i=0;i a = p=a; %sn%sn,a,p); 运行结果: 字符串指针作函数参数 【例 写函数计算字符串的长度。 #s) k=0; s!=0) k+; s+; k; a80=; %dn,a); 【 例 编写函数比较两个字符串的大小。 #a,b) /* 比较字符串 a、 a, a=, a*b) ; a=*b) ; 1; a80,b80; /* 变量 (); a); /* 输入第一个字符串 */ ); b); /* 输入第二个字符串 */ a,b); ; /* 输出比较结果 */ if(0) =); if(; n); 运行情况如下: p, c) p!=0) p!=c) p+; p; s80,c,*p; s); %c,&c); p=s,c); if(p= no n); c %xn,c,p); is n,); 针数组与多级指针 针数组的概念 1指针数组的定义 p 0 C h i n 1 C a n a d 2 S i n g a p o r 3 R o m a n i 4 M e x i c 串指 针 数 组类型标识符 *数组名 常量表达式 ; 例如: p10; p5= “
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026学年宁夏回族自治区固原市六年级语文期末点睛提升精准押题卷(附答案)详细答案和解析
- 2026学年湖北省大冶市一年级数学期末自测重点黑金模拟题附答案详细答案和解析
- 2026年小型花店鲜花供应合同
- 钢结构防腐涂料涂装施工质量保证措施
- 第九課 餃子 手稿 読みましょう2-2 教学设计-2023-2024学年高中日语人教版第三册
- 矿用发电车操作工诚信道德知识考核试卷含答案
- 精密电成型网工岗前技术突破考核试卷含答案
- 塑料浇铸工风险识别模拟考核试卷含答案
- 精制制盐工岗前基础技能考核试卷含答案
- 数控机加生产线操作工风险评估与管理水平考核试卷含答案
- 私人办理转学协议书
- 脑机接口科普
- 2025年广东省自考《审计学原理06069》真题和答案
- 血行播散型肺结核护理查房
- 北京市城市协管员笔试题库及答案
- 上海第三女子初级中学七年级下册数学期末试卷真题汇编解析版
- 韩语文化学习的心得体会
- 小儿人工洗胃法的护理
- 医院保洁服务体系与实施策略
- 异物毛发控制管理办法
- 22J403-1楼梯栏杆栏板
评论
0/150
提交评论