8.1.2指针的基本操作 1、&和* &取地址运算符 *指针运算符(间接访问运算符) int*p, a=3 p=&a,把a的地址赋给p,即p指向a a a3 *p:p所指向的变量a
8.1.2 指针的基本操作 *p: p所指向的变量 a a &a 3 p *p 1、&和* & 取地址运算符 * 指针运算符(间接访问运算符) int *p, a = 3; p=&a; 把 a 的地址赋给 p,即 p 指向 a
例8.1指针运算 main i int a=3, p; p a p=&a; &a printf( %d, %d\,,a, *p) scanf( %d ,&a) 输入57 printf("%d, %dn,a, *p) scanf( %d,, p) 输出: printf("%d, %dn,a, *p) 3.3 5.5 p=10 7.7 printf("%d, %dn,,a, * p) 10.10
a &a 3 p * p 输入 5 7 输出: 3, 3 5, 5 7, 7 10, 10 main( ) { int a = 3, *p; p = &a; printf(“%d,%d \n”, a, *p); scanf(“%d”, &a); printf(“%d,%d \n”, a, *p); scanf(“%d”, p); printf(“%d,%d \n”, a, *p); *p = 10; printf(“%d,%d \n”, a, *p); }例8.1指针运算
例8,2指针运算 main( It a. b p a int pl 2 pl,p &a 100 p a=100:b=10 2 p1=&a; &b 10*p2 2=&b printf( %od, %dn, a, b) 输出 printf( %d, %dn,,*pl, *p2); 100.10 100.10
b &b 10 p2 *p2 输出: 100, 10 100, 10 a &a 100 p1 *p1 main( ) { int a, b; int *p1, *p2; a = 100; b = 10; p1 = &a; p2 = &b; printf(“%d, %d\n”, a, b); printf(“%d, %d\n”, *p1, *p2); } 例8.2指针运算
指针运算注意事项 (1)当p=&a后,*p与a相同。 (2)int*tp;定义 *p=10;p所指向的变量 (3)&*p与&a相同,是地址 *&a与a相同,是变量 p a &a 3 p
a &a 3 p *p 指针运算注意事项 (1) 当 p=&a 后,*p 与 a 相同。 (2) int *p; 定义 *p =10; p所指向的变量 (3) &*p 与 &a 相同,是地址 *&a 与 a 相同,是变量
当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