清华大学出版社 TSINGHUA UNIVERSITY PRESS 102指向变量的指针变量 2.指针运算符 2)取内容运算符* 【例102】变量地址赋指针变量。 include<stdio h> 188.18 void maino 189,1 i int a, b Press any key to continue int *pointer_1, *pointer_2 a=100;b=10 pointer 1=&a; pointer 2=&b: printf(%d, %dIn", a, b) printf("%d, %dn",*pointer_1*pointer_ 2) 返回本章首页
6 返回本章首页 10.2 指向变量的指针变量 2. 指针运算符 2)取内容运算符* 【例10_2】变量地址赋指针变量。 #include<stdio.h> void main() { int a,b; int *pointer_1, *pointer_2; a=100;b=10; pointer_1=&a; pointer_2=&b; printf("%d,%d\n",a,b); printf("%d,%d\n",*pointer_1, *pointer_2); }
清华大学出版社 TSINGHUA UNIVERSITY PRESS 102指向变量的指针变量 2.指针运算符 2)取内容运算符* (2)指针变量的值是可以改变的,即可以改变它的指向。 【例103】输入a和b两个整数,按先大后小的顺序输出a和b include<stdio. h> void main( 3.8 i int*p1,*p2,*p, a, b: 3,b=8 向ax=8,nin=3 scanf(ood, %d, &a, &b): press any key to continue p1=8a;p2=&b; f(a<b){p=p1;p1=p2;p2=p} printf("a=%d, b=%d\n", a, b) printf("max=%d, min=%dIn"*p1, *p2) 返回本章首页
7 返回本章首页 10.2 指向变量的指针变量 2. 指针运算符 2)取内容运算符* (2)指针变量的值是可以改变的,即可以改变它的指向。 【例10_3】输入a和b两个整数,按先大后小的顺序输出a和b。 #include<stdio.h> void main() { int *p1,*p2,*p,a,b; scanf("%d,%d",&a,&b); p1=&a;p2=&b; if(a<b) {p=p1;p1=p2;p2=p;} printf("a=%d,b=%d\n",a,b); printf("max=%d,min=%d\n",*p1, *p2); }
清华大学出版社 TSINGHUA UNIVERSITY PRESS 102指向变量的指针变量 3指针变量作为函数参数 函数的参数是指针类型将一个变量的地址传送到函数中。 【例104】输入的两个整数按大小顺序输出。现在用函数处 理,而且用指针类型的数据作函数参数。 # nclude≤ stdio. h> swap(int*p1, int*p2) i int temp; temp=*p1; *p1=*p2; *p2=temp; 1 void maino i int a, b, pointer 1, *pointer_ 2, scanf( %d, %d", &a, &b) pointer_1=&a; pointer_2=&b if(a<b swap(pointer_1, pointer_ 2); printf("max=%d, min=%dIn",a, b) 返回本章首页
8 返回本章首页 10.2 指向变量的指针变量 3. 指针变量作为函数参数 函数的参数是指针类型,将一个变量的地址传送到函数中。 【例10_4】输入的两个整数按大小顺序输出。现在用函数处 理,而且用指针类型的数据作函数参数。 #include<stdio.h> swap(int *p1,int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; } void main() { int a,b,*pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a;pointer_2=&b; if(a<b) swap(pointer_1,pointer_2); printf("max=%d,min=%d\n",a,b); }
清华大学出版社 TSINGHUA UNIVERSITY PRESS 102指向变量的指针变量 3.指针变量作为函数参数 【例105】通过改变指针形参的值不能改变指针实参的值。 include<stdio,h> 8 swap(int¨p1,int*p2) max=3, min=8 i int *p; p=p1; p1=p2; p2=p;1 Press any key to continue void maino t 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("max=%d, min=%din, *pointer_ 1, *pointer_2) 返回本章首页
9 返回本章首页 10.2 指向变量的指针变量 3. 指针变量作为函数参数 【例10_5】通过改变指针形参的值不能改变指针实参的值。 #include<stdio.h> swap(int *p1,int *p2) { int *p;p=p1;p1=p2;p2=p;} void 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("max=%d,min=%d\n",*pointer_1,*pointer_2); }
清华大学出版社 TSINGHUA UNIVERSITY PRESS 102指向变量的指针变量 3指针变量作为函数参数 【例10_6】输入3个整数a、b、c,按从大到小的顺序输出。 include<stdio. h> swap(int*pt1, int*pt2) i int temp; temp=*pt1; *pt1=*pt2; *pt2=temp; y sort(int*q1, int*q2, int*q 3) if(q1<*q 2 swap(q1, 92) 8.5 if(*q1<*q3 swap(q1, q3); 853 if(*q2<*q3 swap(q2, 3) Press any key to continuel void maino i int a, b, c,*p1,*p2,*p3; scanf( %d, %d, %d", &a, &b, &c); p1=&a;p2=&b;p3=&c; sort(p1, p2, p3); printf( "%d, %d, %d In", a,b, c) 10 返回本章首页
10 返回本章首页 10.2 指向变量的指针变量 3. 指针变量作为函数参数 【例10_6】输入3个整数a、b、c,按从大到小的顺序输出。 #include<stdio.h> swap(int *pt1,int *pt2) { int temp; temp=*pt1; *pt1=*pt2; *pt2=temp; } sort(int *q1,int *q2,int *q3) { if(*q1<*q2)swap(q1,q2); if(*q1<*q3)swap(q1,q3); if(*q2<*q3)swap(q2,q3); } void main() { int a,b,c,*p1,*p2,*p3; scanf("%d,%d,%d",&a,&b,&c); p1=&a;p2=&b; p3=&c; sort(p1,p2,p3); printf("%d,%d,%d \n",a,b,c); }