C语言-13-指针与函数 PPT课件

上传人:Lesl****ang 文档编号:165207611 上传时间:2021-02-01 格式:PPT 页数:15 大小:726.50KB
返回 下载 相关 举报
C语言-13-指针与函数 PPT课件_第1页
第1页 / 共15页
C语言-13-指针与函数 PPT课件_第2页
第2页 / 共15页
C语言-13-指针与函数 PPT课件_第3页
第3页 / 共15页
C语言-13-指针与函数 PPT课件_第4页
第4页 / 共15页
C语言-13-指针与函数 PPT课件_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《C语言-13-指针与函数 PPT课件》由会员分享,可在线阅读,更多相关《C语言-13-指针与函数 PPT课件(15页珍藏版)》请在金锄头文库上搜索。

1、指针与函数,指针变量作函数参数,P225,形参,实参,指针变量,指针变量,指针变量作实参时,将指针变量的值(变量的地址)传递给被调用函数的形参(通常形参是指针变量)。,变量地址,指针变量,若实参为变量的地址,则被调用函数的形参必须是指针变量。,一维数组名,一维数组/指针变量,若实参为一维数组名,则被调用函数的形参可以是一维数组也可以是指针变量。,指针变量,既可以作为函数的形参,也可以作函数的实参。但作实参时指针变量必须赋值。 指针变量作函数的参数通常实现地址传递。,#include void fun(int x,int y, int *p , int *q ) *p=xy?x:y; *q=xy

2、?x:y; void main() int a,b,max,min,*q; scanf(%d%d, ,例:阅读下列程序,输入23,67,写出其执行结果。,int *p, b b0 ; for(i=1;ibi) *pt1=bi; if(*pt2bi) *pt2=bi; void main( ) int aa10=-1,2,3,-4,-5,7,8,9,10,-7,*p1,*p2,a,b; p1= ,例:下列程序实现的功能求最大值和最小值,请填空。,int b , int *pt1, int *pt2,*pt1=*pt2=,int *b,#include #include void main() c

3、har *s1=BD,*s2=BC,*s3=AB; void swap(char *s1,char *s2); if(strcmp(s1,s2)0)swap(s1,s2); if(strcmp(s2,s3)0)swap(s2,s3); if(strcmp(s1,s2)0)swap(s1,s2); puts(s1);puts(s2);puts(s3); void swap(char *s1,char *s2) char t; t=*s1;*s1=*s2;*s2=t; ,例:阅读下列程序,写出其执行结果。,*s1 *(s1+0) s10,*s2 *(s2+0) s20,A,B,A,B,AD BC

4、BB,#include #include void fun(char *w, int m) char *p1,*p2;int s; p1=w;p2=w+m-1; while(p1p2) s=*p1+; *p1=*p2-;*p2=s; main() char a=”ABCDEFG”; fun(a, strlen(a); puts(a);,例:阅读下列程序,写出程序的输出结果。,AGAAGAG,若有定义:int a34, (*p1)4=a;,指向数组的指针作函数参数,P249,形参,实参,二维数组名,一维数组 二维数组 指针变量 指向一维数组的指针变量,编程思路: 函数average求总平均成绩;

5、 函数find找出并输出第i个学生的成绩。 主函数实现数据的输入。,P249 例10.13 有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩。,#include void average(float *p,int n); void find(float (*p)4,int n);,二维数组首行地址,int main() float score34; int i,j; for(i=0;i3;i+) for(j=0;j4;j+) scanf(%f, ,score00的地址,score0,score1,score2,void average( float *p, int n) fl

6、oat *p_end; float sum=0,aver; p_end=p+n-1; for( ;p=p_end; p+) sum=sum+(*p); aver=sum/n; printf(average=%5.2fn,aver); ,p,p_end,p+后的指针p,void find( float (*p)4, int n) int i; printf(The score of No.%d are:n,n); for(i=0;i4;i+) printf(%5.2f ,*(*(p+n)+i); printf(n); ,p,p+2,指向函数的指针变量,P260,类型说明 (*指针变量)( );,

7、函数指针(地址):一个函数在编译时,被分配了一个入口地址,这个地址就称为该函数的指针。 函数名代表该函数的入口地址 可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。,指针变量的类型应与指向函数的类型一致。,指针函数(返回指针值的函数),P265,类型说明 *函数名( );,函数的返回值:整型值、实型值、字符值和地址(指针)值。 指针函数就是返回指针值的函数。,#include char *strc(char *s1,char c) char *p=s1; while (*p ,例:读下列程序,写出其运行结果。,ter OK!,指针的数据类型 int *p;p为指向整型数据的指针变量。指针变量为列指针。 int (*p)n;p为指向含有n个整型元素的数组的指针变量。指针变量为行指针。 int *pn;p为含有n个指向整型的指针元素的指针数组的数组名。 int *p( );p为指针函数,返回地址值。 int (*p)( );p为指向整型函数的指针变量。 int *p;p为指针变量,它指向一个指向整型数据的指针变量。指针变量为行指针。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > C/C++资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号