程序举例:
概念:指针、指针变量、地址
指针:一个地址,指针就是地址
指针变量:存放要操作的目标单元地址
例子:抽屉A,抽屉A里面存放这一个字母,这个抽屉里面的字母对应另外一个抽屉。
此致A这个符号可以称为地址,也就是指针,而A里面的字母称为指针变量。
int *a; a为指针变量,改变a就能改变指针所指向的单元,所以a赋值内容为地址,即a=&b(意思就是指针指向了b地址这个单元)。此时*a等同于b(这种等同是当抽屉里面里面存放了b这个地址才等同)。
下面拿个程序来举例 :
#include <stdio.h>
void swap(int *pa,int *pb);
int main(void)
{
int a=5; //在内存中分配一个随机的地址空间,把这个地址名字命名为a,即通过a可以找到这个随机的地址空间。
int b=6;
printf("a=%d,b=%d\n",a,b);
swap(&a,&b); //传参,&a:a的地址
printf("a=%d,b=%d\n",a,b);
return 0;
}
void swap(int *pa,int *pb)
{
int t= *pa; //此刻的*pa就等同于a,*pb就等同于b
*pa=*pb;
*pb=t;
}
ps:int *pa=&a 其实是两个语句 等价于 int *pa; pa=&a。