欢迎来到天天文库
浏览记录
ID:48424194
大小:275.50 KB
页数:20页
时间:2020-01-19
《指针作函数参数.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、指针做函数参数计算机学院:张彦航学习目标熟练掌握指针做函数参数的方法明确指针与函数的关系进一步理解函数参数传递的原理每个变量名都与一个唯一的地址相对应,用于存放特定类型的数据。指针:一个变量的地址称为该变量的指针。指针不但指示了数据的存储位置,还标明了该数据的类型。指针概念回顾:指针与地址的区别:swap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b;int*pa,*pb;scanf(“%d,%d”,&a,&b);pa=&a;pb=&b;if(a
2、,b);}运行情况:5,99,5交换指针所指向的变量值作用:将一个变量的地址传至另外一个函数中。变量的指针作函数参数指针作函数参数swap(intb[]){intp;p=b[0];b[0]=b[1];b[1]=p;}main(){inta[2];scanf(“%d%d”,&a[0],&a[1]);if(a[0]3、%d”,&a,&b);if(a4、递过程中的数据复制量。用指针作函数参数,通过将数据区的地址传递给函数,使函数能够改动该地址处的数据。用指针作函数参数,可以返回多个值#include voidsubfun(int*m,int*n); /*说明子函数*/main() {inti,j;printf("i,j=?");scanf("%d,%d",&i,&j);printf(“beforecallingi=%dj=%di*j=%d”,i,j,i*j);subfun(&i,&j); /*以传送地址的方式调用子函数*/printf(“aftercallingi=5、%dj=%di*j=%d",i,j,i*j); } voidsubfun(int*m,int*n) {*m=*m+2; *n=*m-*n;}指针和函数的关系主要包括:1、指针作为函数的参数。2、函数的返回值可以是指针类型3、指针可以指向函数。函数的返回值为指针。例:去掉参数字符串的尾部空格。Char*mytrim(char*s){char*p=s+strlen(s)-1;while(p-s>=0&&*p!=‘ ’)p--;*(p+1)=‘ ’;Returns;}指向函数的指针1、定义形式:数据类型标识符(*指针变量名)();6、2、调用形式:(*指针变量名)(实参表);main(){int(*p)();/*声明指向函数的指针变量p*/inta,b,c;p=max;/*指向函数的指针变量p赋初值*/scanf(“%d,%d”,&a,&b);c=(*p)(a,b);/*函数调用*/printf(“a=%d,b=%d,max=%d”,a,b,c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}(1)函数调用可以通过函数名,也可通过函数指针。(2)指针变量可以先后指向不同的函数。(3)对指向函数的指针变量作运算是无意义的。几个注意事项——指针做7、函数参数指针与函数的关系函数参数传递的原理本节我们学习了
3、%d”,&a,&b);if(a
4、递过程中的数据复制量。用指针作函数参数,通过将数据区的地址传递给函数,使函数能够改动该地址处的数据。用指针作函数参数,可以返回多个值#include voidsubfun(int*m,int*n); /*说明子函数*/main() {inti,j;printf("i,j=?");scanf("%d,%d",&i,&j);printf(“beforecallingi=%dj=%di*j=%d”,i,j,i*j);subfun(&i,&j); /*以传送地址的方式调用子函数*/printf(“aftercallingi=
5、%dj=%di*j=%d",i,j,i*j); } voidsubfun(int*m,int*n) {*m=*m+2; *n=*m-*n;}指针和函数的关系主要包括:1、指针作为函数的参数。2、函数的返回值可以是指针类型3、指针可以指向函数。函数的返回值为指针。例:去掉参数字符串的尾部空格。Char*mytrim(char*s){char*p=s+strlen(s)-1;while(p-s>=0&&*p!=‘ ’)p--;*(p+1)=‘ ’;Returns;}指向函数的指针1、定义形式:数据类型标识符(*指针变量名)();
6、2、调用形式:(*指针变量名)(实参表);main(){int(*p)();/*声明指向函数的指针变量p*/inta,b,c;p=max;/*指向函数的指针变量p赋初值*/scanf(“%d,%d”,&a,&b);c=(*p)(a,b);/*函数调用*/printf(“a=%d,b=%d,max=%d”,a,b,c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}(1)函数调用可以通过函数名,也可通过函数指针。(2)指针变量可以先后指向不同的函数。(3)对指向函数的指针变量作运算是无意义的。几个注意事项——指针做
7、函数参数指针与函数的关系函数参数传递的原理本节我们学习了
此文档下载收益归作者所有