计算机基础与C语言程序设计第9章_指针_第1页
计算机基础与C语言程序设计第9章_指针_第2页
计算机基础与C语言程序设计第9章_指针_第3页
计算机基础与C语言程序设计第9章_指针_第4页
计算机基础与C语言程序设计第9章_指针_第5页
已阅读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 例如: i t a , * 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论