7.2指针变量 History >指针变量作为函数参数 地址传递 特点:共享内存,“双向”传递 例将数从大到小输出 (main) swap(int x,int y) 2000 变量a int temp; 2002 5 变量b temp=x; 9 2004 x-y; y=temp; 2006 2008 } 200A main() inta,b; scanf"%d,%d"&a,&b): if(a<b)swap(a,b); printf"\n%d,%d n",a,b); 运行结果:5,9
7.2 指针变量 ➢ 指针变量作为函数参数——地址传递 特点:共享内存 , “双向 ”传递 swap(int x,int y) { int temp; temp=x; x=y; y=temp; } main() { int a,b; scanf("%d,%d",&a,&b); if(a<b) swap(a,b); printf(" \n%d,%d \n",a,b); }例 将数从大到小输出 值传递 . . 2000 2008 200A 2002 2004 2006 5 变量 a 变量 b (main) 9 运行结果:5, 9
y7.2指针变量 History 例将数从大到小输出 swap(int *p1,int *p2) int p; (main) p=*p1; 2000 整型变量a 9 *p1=*p2; 2002 整型变量b 5 *p2=p; 2004 指针pointer_I 2000 2006 指针pointer2 main() 2008 2002 int a,b; COPY 200A (swap) int *pointer_1,*pointer_2; 指针pl 2000 scanf("%d,%d",&a,&b); 200C 指针p2 2002 pointer_1=&a;pointer_2=&b; 200E -整型p 5 if(a<b)swap(pointer_1,pointer_2); 2010 printf("\n%d,%d\n",a,b);
7.2 指针变量 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(" \n%d,%d \n",a,b); }例 将数从大到小输出 . 2000 2008 200A 2002 2004 2006 200C 200E 2010 . 59 整型变量 a 整型变量 b (main) 指针pointer_1 指针pointer_2 2000 2002 (swap) 指针p1 指针p2 整型 p 59 2000 2002 COPY 5
7.2指针变量 History 例将数从大到小输出 swap(int *p1,int *p2) int p; (main) 2000 整型变量a p=*p1; 9 *p1=*p2; 2002 整型变量b 5 *p2=p: 2004 指针pointer_l 2000 2006 指针pointer2 main( 2002 2008 int a,b; 200A int *pointer_1,*pointer_2; scanf("%d,%d",&a,&b); 200C pointer_1=&a;pointer_2=&b; 200E if(a<b)swap(pointer_1,pointer_2); 2010 printf("\n%d,%d\n",a,b); 运行结果:9,5
7.2 指针变量 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(" \n%d,%d \n",a,b); } 例 将数从大到小输出 运行结果: 9 , 5 地址传递 . 2000 2008 200A 2002 2004 2006 200C 200E 2010 . 59 整型变量 a 整型变量 b (main) 指针pointer_1 指针pointer_2 2000 2002 59
y7.2指针变量 History 例将数从大到小输出 /*ch932.c*/ (main) swap(int x,int y) 2000 整型a int t; 2002 5 ←一整型b t-x;x-y,y=t, 9 2004 ←-pointer_1 值传递 2000 2006 pointer_2 main() 2008 2002 int a,b; COPY 200A (swap) int *pointer 1,*pointer 2; ←一整型x 9 scanf("%d,%d",&a,&b); 200C 一整型y 5 pointer 1=&a;pointer 2=&b; 200E 整型t 5 if(a<b)swap(*pointer_1,*pointer_2); 2010 printf("n%d,%d n",a,b); 运行结果:5,9
7.2 指针变量 /*ch9_32.c*/ 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 整型 y 整型 t 5595
7.2指针变量 History 例将数从大到小输出 swap(int *pl,int *p2) int *p; (main) 2000 整型a p-pl; pl-p2; 2002 5 一整型b 9 p2-p; 2004 -pointer_1 2000 地址传选 2006 pointer 2 2002 main() 2008 int a,b; COPY 200A (swap) int *pointer 1,*pointer 2; 2002 4一指针pl 200C ←一 scanf("%d,%d"&a&b); 指针p2 2000 pointer1=&a;pointer 2-&b: 200E 指针p 2000 if(a<b)swap(pointer_1,pointer_2); 2010 printf("%d,%d",*pointer 1,*pointer 2); 运行结果:5,9
7.2 指针变量 运行结果: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