当p=&a时 (*p)++等价于a++ 将p所指向的变量值加1 *p++等价于*(p+) 先取*,然后p自加,此时p不再指向a p a &a 3*p
a &a 3 p *p 当 p=&a 时 (4) (*p)++ 等价于 a++ 将p所指向的变量值加1 *p++ 等价于 *(p++) 先取 *p,然后 p 自加,此时p不再指向a
任课教师:颜晖 课程名称:计算机程序设计( 课程代码: 0705004 教师E~mai:yqfjct02@dlc.zju.edu.cn 第32讲 浙江大学远程教育学院版权所有 2002-2003第二学期
颜晖 计算机程序设计(C) 32 0705004 yqfjc02@dlc.zju.edu.cn
2、赋值 int pl*p2 p p a=3 pl=&a 把a的地址赋给p1,即p1指向a 2=pl;p2也指向a p a & 举p2 2 &a
2、赋值= a &a 3 p1 p2=p1; p2 也指向 a &a p2 *p1 *p2 int *p1, *p2, a=3; p1=&a; 把 a 的地址赋给 p1,即 p1 指向 a
例8.3指针赋值 main 输出 i int a, b 10.100 int>pl, * p2 p a a=100:b=10 100 p 1=&a: )2=pI 2 p 10 p 1=&b printf( od, %dn,,*pl, * p2)
输出: 10, 100 例8.3指针赋值 main( ) { int a, b; int *p1, *p2; a = 100; b = 10; p1 = &a; p2 = p1; p1 = &b; printf(“%d, %d\n”, *p1, *p2); } b 10 p1 a 100 p2
8.1.3指针变量的初始化 例84-1 p a void main( &a i int a=1, b=2 int * pl=&a, *p2=&b, *pt; 2 b 2 printf( (C%d,%dln”,*pl,*p2); p pt=pl; pl=p2; p2= pt &b printf( %d, %odn,,pl, *p2) 2 &a
8.1.3 指针变量的初始化 例8.4-1 void main( ) { int a=1, b=2; int *p1= &a, *p2=&b, *pt; printf(“%d, %d\n”, *p1, *p2); pt = p1; p1 = p2; p2 = pt; printf(“%d, %d\n”, *p1, *p2); } b &b 2 p2 a &a 1 p1 b &a 2 p2 a &b 1 p1