返回指针值的函数-指针数组-指向指针的指针.ppt_第1页
返回指针值的函数-指针数组-指向指针的指针.ppt_第2页
返回指针值的函数-指针数组-指向指针的指针.ppt_第3页
返回指针值的函数-指针数组-指向指针的指针.ppt_第4页
返回指针值的函数-指针数组-指向指针的指针.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7讲 指针 内容: (1)返回指针值的函数 (2)指针数组 (3)指向指针的指针 返回指针值的函数 l函数的返回值可以是一个指针类型的数据(即地址) 返回指针值函数的定义格式: 函数类型 * 函数名( 形参列表 ) 函数体; 说明:定义一个返回指针值的函数与定义普通函数的格式基本 类似,只是在函数名前加 * , 表明该函数返回一个指针值 例: int * fun ( int a , int b ) 函数体 ; 例3-4求某班成绩的平均分, 最高分和最低分 要求用返回指针值的函数实现 分析: n通过函数average的返回值 得到保存平均分变量的地址, 进而得到平均分, 函数中将 平均分变量定义成静态的, 这样函数结束后该变量仍然 存在。 main p average aver1静态 aver float x=0, y=100, *p; printf(“input n:”); scanf(“%d“, p=average(n, printf(“ave=%6.2f, “, *p); printf(“max=%6.2f, “, x); printf(“min=%6.2fn“, y); 例3-4 程序代码 静态局部变量 float *average(int n, float *max, float *min) int i; float s, *aver, sum=0; static float aver1; aver= for(i=1; i*max) *max=s; if(s #include #define SIZE 1000 char bufSIZE ; char *p=buf ; char *alloc( int n) char *begin ; if ( p+n #include #define MAXLEN 7 #define N 4 void main( ) int i, j; char tempMAXLEN; char nameNMAXLEN=“Pascal“,“VC“,“Basic“,“Java“; printf(“before sorted:n“); for(i=0; i0) strcpy(temp, namei); strcpy(namei, namej); strcpy(namej, temp); printf(“nafter sorted:n“); for(i=0; i #include #define N 4 void main( ) int i, j; char *temp=NULL; char *pN=“Pascal“, “VC“, “Basic“, “Java“; printf(“nBefore sorted:n“); for(i=0; i0) temp=pi; pi=pj; pj=temp; printf(“nAfter sorted:n“); for(i=0; i0) temp=pi; pi=pj; pj=temp; 例2-4: 方法2的过程演示 i=0, j=1 PV temp 2100 2107 2110 2116 i=0, j=2 PB temp=p0; p0=p2; p2=temp; 2100 p0 p1 p2 p3 2110 2100 i=0, j=3 BJ i=1, j=2 VP temp=p1; p1=p2; p2=temp; 2107 2100 2107 i=1, j=3 PJ temp=p1; p1=p3; p3=temp; i=2, j=3 VP temp=p2; p2=p3; p3=temp; 2100 2116 2100 2107 2100 2107 指向指针的指针 2026 q int x, *q,*t; x=36; q= t= 36 2010 x 2048 t 20102026 t即为指向指针的指针(也称二级指针) 思考: q=45; *q=45; *t=56; *t=56; 对 错,因为q是指针变量,赋值号右侧必须是地址 错,因为t是二级指针变量,*t等价于q 对 指向指针的指针 char *p4=“Pascal“, “VC“, “Basic“, “Java“; char *q; q=p; for( ;qp+4;q+) puts(*q); p0 p1 p2 p3 Pascal0 VC0 Basic0 Java0 pq 思考: int a34; int *p; p=a; int a34; int (*p)4; p=a; 对 错 虽然在定义p的时只用 了一个*,但p实际上 是一个二级指针变量 虽然a是二级地址,p是二级指针变量,但它们的含义不同 a指向的是一行整型数据,它包含4个元素 p指向的是一个整型指针变量 作业: 习题10.12 某班期末考试有门课程, 班级人数不确定, 要求计算 每个学生的总分和平均分, 按以下格式输出数据 NO. S1 S2 S3 SUM AVE 1 97 86 92 276 92 2 92 91 90 273 91

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论