(3)可以用初始化了的指针变量给另一个指针 变量做初始化值。 例如: int x int*p=&x; int*g=p5 (4)以将一个指针变量初始化为一个空指针。 例如: int * p=NULL; 7
(3)可以用初始化了的指针变量给另一个指针 变量做初始化值。 例如: int x ; int *p=&x ; int *q=p; (4)以将一个指针变量初始化为一个空指针。 例如: int *p=NULL;
10.22指针变量的引用 1.取地址运算符& 取地址运算符&是单目运算符,用于变量 名之前,表示该变量的存储地址。 2.指针运算符 指针运算符*又称为间接访问运算符,是单 目运算符,用来表示指针变量所指向的变量。 在运算符之后跟的操作对象必须是指针。 7
10.2.2 指针变量的引用 1.取地址运算符& 取地址运算符&是单目运算符,用于变量 名之前,表示该变量的存储地址。 2.指针运算符* 指针运算符*又称为间接访问运算符,是单 目运算符,用来表示指针变量所指向的变量。 在*运算符之后跟的操作对象必须是指针
例10.1这个小程序连接了本节中的程序片段,并且添加了输出语 句来显示变量的内容和地址。 #include stdio. h main( int"p int a, b, pl, p2 float x, y, P-NULL printf("&p=%x, P=%x, *p=%d\n", &p, p, *p) a=685 pI=&a; printf("&a=%x, a=%d\n", &a, a); printf("&p1=%x,pl=%x, *p1=%d\n", &pl, p1, *p1); b=64: 2=&b printf"&p2=%x,p2=%xp2=%dn",&p2,p2,*p2); b=“pl+10 printf("&p2=%x, p2=%x,*p2=%d\n", &p2, p2, *p2); 7 x=6.83
例10.1 这个小程序连接了本节中的程序片段,并且添加了输出语 句来显示变量的内容和地址。 #include "stdio.h" main() { int *p; int a,b,*p1,*p2; float x,y,*pf; p=NULL; printf("&p=%x,p=%x,*p=%d\n",&p,p,*p); a=685; p1=&a; printf("&a=%x,a=%d\n",&a,a); printf("&p1=%x,p1=%x,*p1=%d\n",&p1,p1,*p1); b=64; p2=&b; printf("&p2=%x,p2=%x,*p2=%d\n",&p2,p2,*p2); b=*p1+10; printf("&p2=%x,p2=%x,*p2=%d\n",&p2,p2,*p2); x=6.83;
printf("&x=%x, x=%. 2f(n", &x, x) pf&x; printf("&pf-%x,pf-%x, "pf%.2f\n", &p,pf, *pf) printf("&y=%x, y=%. 2fn", &y, y) 程序运行结果为 &p=fic8,p=0,*p=0 &a=ffca. a=685 &pl=ffce, pl=ffca, p1=685 &p2=fd0,p2=fic,p2=64 &p2=fd0,p2=fce,p2=695 &x=fd2,x=6.83 &pf-ffda, pf-ffd2, pf-6.83 &y=fid6y=6.83 7
printf("&x=%x,x=%.2f\n",&x,x); pf=&x; printf("&pf=%x,pf=%x,*pf=%.2f\n",&pf,pf,*pf); y=*pf; printf("&y=%x,y=%.2f\n",&y,y); } 程序运行结果为 &p=ffc8,p=0,*p=0 &a=ffca,a=685 &p1=ffce,p1=ffca,*p1=685 &p2=ffd0,p2=ffcc,*p2=64 &p2=ffd0,p2=ffcc,*p2=695 &x=ffd2,x=6.83 &pf=ffda,pf=ffd2,*pf=6.83 &y=ffd6,y=6.83
例10.2从键盘输入两个整数给变量m与n,不改变m与n的值,按照从小到大 的顺序输出。 mainO int m n: int*p, pl, 'p2 1=&m 2=&n; printf("please input m, n: In") scanf(%d, %d", &m, &n); if(m>n) { P-p pl-pz; p2=p; printf("m=%d, n=%d\n", m, n) 7 printf("min=%d, max=%d\n", *pl,*p2);
例10.2 从键盘输入两个整数给变量m与n,不改变m与n的值,按照从小到大 的顺序输出。 main() { int m,n; int *p,*p1,*p2; p1=&m; p2=&n; printf("please input m,n:\n"); scanf("%d,%d",&m,&n); if(m>n) { p=p1; p1=p2; p2=p; } printf("m=%d, n=%d\n",m,n); printf("min=%d, max=%d\n",*p1,*p2); }