例8.5将数从大到小输出 4)下面程序正确吗? (main) swap(int x, int y) 2000 整型a i int t 2002 整型b t=X, Xy;y=t 2004 值传递 pointer 1 2000 2006 pointer 2 mal 2002 2008 i int a, b COPY 200 (swap) 整型x int*pointer l, pointer 2 整型b scanf("%d, %d", &a, &b); 200C pointer 1=&a; pointer 2=&b 200E 整型t if(a<b) swap( pointer 1, * p 2010 ointer printi if("n%d, %dn", a, b) 运行结果:5,9
swap(int x,int y) { int t; t=x; x=y; y=t; } main() { int a,b; int *pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a; pointer_2=&b; if(a<b) swap(*pointer_1,*pointer_2); printf(" \n%d,%d\n",a,b); } 运行结果: 5 , 9 值传递 …... 2000 2008 200A 2002 2004 2006 200C 200E 2010 ... 59 整型 a 整型 b (main) pointer_1 pointer_2 2000 2002 9 COPY (swap) 整型 x 整型 b 整型 t 5595 例 8.5 将数从大到小输出 (4)下面程序正确吗?
例8.5将数从大到小输出 5下而程序正确吗 swap(int *pl, int *p2) i int*p (main) p=pl 整型a pl=p2 2002 5 整型b p2=p; 地址传递 20041 pointer 2000 2006 pointer 2 main( 2002 i int a, b COPYY2908 200 (swap) int*pointer 1, pointer 2 指针pl 2002 2200C 指针p2 scanf("%d,%d", &a, &b) 2000 pointer 1=&a; pointer 2=&b 200E 指针p 2000 if(a<b) swap(pointer 1, pointer 2) printf("%d, %d",pointer 1, *pointer 2) 运行结果:5,9
运行结果:5,9 swap(int *p1, int *p2) { int *p; p=p1; p1=p2; p2=p; } main() { int a,b; int *pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a; pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf("%d,%d",*pointer_1,*pointer_2); } …... 2000 2008 200A 2002 2004 2006 200C 200E 2010 ... 5 9 整型a 整型b (main) pointer_1 pointer_2 2000 2002 2000 2002 COPY (swap) 指针p1 指针p2 指针p 2000 **** 地址传递 2000 2002 例 8.5 将数从大到小输出 (5)下面程序正确吗?
8.2.2返回指针的函数 返回值为某指针类型的函数) ★函数定义形式 类型标识符函数名(参数表) 例int* f(int x,inty)
8.2.2 返回指针的函数 (返回值为某指针类型的函数) 函数定义形式: 类型标识符 *函数名(参数表); 例 int *f(int x, int y) { …… }
例写一个函数,求两个int型变量中居于较大值的变量的地址 maino i int a=2, b=3 main 2000 变量a p=f(&a,&b); 2002 2 变量b printf("%dn","p) 3 2004 :指针变量p COPY 水 2006 (f1) int fI(int *x, int *y) 2008 指针变量ⅹ 2000 300 指针变量y 2002 return x return y
例 写一个函数,求两个int型变量中居于较大值的变量的地址 int *f1(int *x,int *y) { if(*x>*y) return x; else return y; } main() { int a=2,b=3; int *p; p=f1(&a, &b); printf("%d\n",*p); } …... 2000 2008 200A 2002 2004 2006 2 3 指针变量y 指针变量x (f1) 2002 2000 COPY 变量a 变量b (main) 指针变量p **
例写一个函数,求两个int型变量中居于较大值的变量的地址 maino i int a=2, b=3 main 2000 变量a p=f3(a,b); 2002 变量b printf("%dn","p) 2004 :指针变量p COPY 2006 23*B intiB(int x,int y) 2008 变量x 300 变量y return &x return &y;
例 写一个函数,求两个int型变量中居于较大值的变量的地址 int *f3(int x,int y) { if(x>y) return &x; else return &y; } main() { int a=2,b=3; int *p; p=f3(a, b); printf("%d\n",*p); } …... 2000 2008 200A 2002 2004 2006 2 3 变量y 变量x (f3) 3 2 COPY 变量a 变量b (main) 指针变量p **