清华大学出版社 TSINGHUA UNIVERSITY PRESS 8.2.2怎样引用指针变量 在引用指针变量时,可能有三种情况: (1)给指针变量赋值。如: &a (2)引用指针变量的值。如 printf( %oo,p) (3)引用指针变量指向的变量。 有关的两个运算符: (1)&取地址运算符。&a是变量a的地址。 (2)*指针运算符(或称“间接访问”运算符),*p 是指针变量p指向的对象的值
在引用指针变量时,可能有三种情况: ⑴给指针变量赋值。如: p=&a; ⑵引用指针变量的值。如: printf(“%o”,p); ⑶引用指针变量指向的变量。 有关的两个运算符: (1) & 取地址运算符。 &a是变量a的地址。 (2) * 指针运算符 (或称“间接访问”运算符),*p 是指针变量p指向的对象的值。 8.2.2 怎样引用指针变量
清华大学出版社 TSINGHUA UNIVERSITY PRESS 例8.1通过指针变量访问整型变量 #include <stdio. h void main () I int a, b; int pointer 1,*pointer 2 a=100;b=10; pointer1=&a;把变量a的地址赋给 pointer 1* pointer_2=&b;/把变量b的地址赋给 pointer 2 */ printf ("%d, %d\n" ,a, b) printf ("%d, %d \n" pointer 1,*pointer 2)
例8.1 通过指针变量访问整型变量 #include <stdio.h> void main ( ) { int a,b; int *pointer_1, *pointer_2; a=100;b=10; pointer_1=&a; /*把变量a的地址赋给 pointer_1 */ pointer_2=&b; /*把变量b的地址赋给 pointer_2 */ printf(″%d,%d\n″,a,b); printf(″%d,%d\n″,*pointer_1, *pointer_2); }
清华大学出版社 TSINGHUA UNIVERSITY PRESS pointer 1 a *k pointer pointer *pointer_ 2
例8.2输入a和b两个整数,按先大后小的顺序输出 a和b。 #include <stdio.h> void main ( i int pl, * 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\n b) printf ("max=% d ,min=%d\n"*p1, *p2);
例8 . 2 输入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\n″,a,b); printf(″max=%d,min=%d\n″,*p1,*p2); }
清华大学出版社 TSINGHUA UNIVERSITY PRESS 运行情况如下: 5a 9 v 5,b=9 maⅹ=9,min=5 当输入a=5,b=9时,由于a<b 将p1和p2交换。交换前的情况见图 (a),交换后见图(b)
运行情况如下: 5,9↙ a=5,b=9 max=9,min=5 当输入a=5,b=9时,由于a<b, 将p1和p2交换。交换前的情况见图 (a),交换后见图(b)