main( #include <stdio.h> fint a,b; void swap(int *p1,int *p2) a=5; int t; b=3; t=*p1; *p1=*p2; swap(&a,&b); *p2=t; printf("a=%d,b=%d n",a,b)} return;
#include <stdio.h> void swap(int *p1,int *p2) { int t; t=*p1; *p1=*p2; *p2=t; return; } main( ) {int a,b; a=5; b=3; swap(&a,&b); printf("a=%d,b=%d \n",a,b);}
通过指针形参传递数据的一般步骤: (1)根据主调函数中待引用变量的数量和类型,在 被调函数中定义相应的指针形参。 (2)在主调函数中以待引用变量的地址作为对应的 实参。 (3)在被调函数中通过指针形参间接引用主调函数 中的对应变量
通过指针形参传递数据的一般步骤: (1)根据主调函数中待引用变量的数量和类型,在 被调函数中定义相应的指针形参。 (2)在主调函数中以待引用变量的地址作为对应的 实参。 (3)在被调函数中通过指针形参间接引用主调函数 中的对应变量
【例10.2】编写求三个数中最大数和最小数的函数, 要求不能用returni语句或全局变量将求得的最大数 和最小数传回到主调函数中
【例10.2】 编写求三个数中最大数和最小数的函数, 要求不能用return语句或全局变量将求得的最大数 和最小数传回到主调函数中
问题分析: 由于限定不能用return语句或全局变量将求得 的最大值和最小值传回到主调函数中,因此可以通 过指针形参间接引用的方式,将最大值和最小值赋 给主调函数中的变量
问题分析: 由于限定不能用return语句或全局变量将求得 的最大值和最小值传回到主调函数中,因此可以通 过指针形参间接引用的方式,将最大值和最小值赋 给主调函数中的变量
mainO #include <stdio.h> void max min(int a,int b,int c,inin: int m,n; if(a>b) printf("请输入三个整数:"); im=a; scanf ("%d%d%d",&x,&y,&z); n=b;} max_min(x,y,z,&max,&min); else printf("最大数=%d,最小数 {m=b; =%d\n",max,min); n=a;} if(c>m) m=c; if(c<n) n=c; 米p=m; /*间接引用变量max*/ *q=n;/*间接引用变量min*/
#include <stdio.h> void max_min(int a,int b,int c,int *p,int *q) { int m,n; if(a>b) {m=a; n=b;} else {m=b; n=a;} if(c>m) m=c; if(c<n) n=c; *p=m; /*间接引用变量max*/ *q=n; /*间接引用变量min*/ } main() { int x,y,z,max,min; printf("请输入三个整数:"); scanf("%d%d%d",&x,&y,&z); max_min(x,y,z,&max,&min); printf("最大数=%d,最小数 =%d\n",max,min); }