指针的基础知识点:
指针其实就是地址,是用来存储变量的。
通常在定义一个整形变量是这样定义的:
int a = 2;
定义一个整形指针是这样的:
int *p = &a;
* 就是一个声明,声明p是一个指针,用来存储a的地址,&就是取地址符,把变量a的地址取出来赋给指针变量p
如果输出printf(''%d'', *p);
输出的结果是2,因为输出函数的里面的*号指的是把指针变量p存储的值取出来,和int *p = &a;里的*是不一样的,所以这个*叫做取值符,这两个*代表的意思不一样,不要搞混。
所以 :
*p = 2;
p = &a;
那么如果定义两个变量 :
int a = 3, b = 5;
在定义两个整形指针:
int *p1 = &a;
int *p2 = &b;
printf(''%d, %d'',*p1, *p2);
输出结果*p1= 3, *p2= 5;
接下来定义一个整形指针p用来交换p1, p2的地址
int *p = p1, p1 = p2, p2 = p;
printf(''%d, %d'',*p1, *p2);
输出结果*p1= 5, *p2= 3;
这就是通过交换指针(指针就是地址)来改变变量的值