指针概述
void *类型指针 表示: void *p; 使用时要通过强制类型转换, 确定p指向哪一种类型数据。
(3)强制类型转换
(指针类型 *)指针
三.指针变量的运算 1、取地址运算符&和间接访问运算符*
例: int *p, a=3; /* *运算符称作指针定义符 */ /* &运算符称作取地址运算符 */ 直接寻址 p = &a; /* *运算符称作间接访问运算符*/ 间接寻址 *p = 6 ;
运行结果: a=3,b=5,*p1=3,*p2=5 a=1,b=2,*p1=1,*p2=2
【例】用指针间接访问操作所指变量示例改。
# include <stdio.h> void main() a=1,b=2,*p1=2,*p2=1 { int a=3 ,b=5,t,*p1,*p2; p1 3 a *p1 p1 = &a; p2 = &b; p2 5 b *p2 printf (“a=%d, b=%d, *p1=%d, *p2=%d\n”, a, b,*p1,*p2); *p1 = 1; *p2 = 2; printf (“a=%d, b=%d, *p1=%d, *p2=%d\n”, a, b,*p1,*p2); p1 = &b; p2 = &a; printf (“a=%d, b=%d, *p1=%d, *p2=%d\n”, a, b,*p1,*p2); } 交换P1、P2 仅是交换其所指的值;原变量值不变。
t t=*p1; *p1 = *p2; *p2 = printf (“a=%d, b=%d, *p1=%d, *p2=%d\n”, a, b,*p1,*p2); } 交换*P1、*P2 :就是交换其 所指变量的值。 p1 t; p2 1 2 2 1 a b *p1 *p2 p1 p2 1 2 a b *p1 *p2