补数据结构看书的时候,发现好久不用C,关于指针有些遗忘了,整理一下。
以下内容是一段代码,不要单句去看:
int b=2;//假设b存放的地址为FFFFFFFFH
int *a; //声明一个指针变量,该指针变量指向一个存有int类型数的内存单元。该变量有自己的地址,假设为1456231FH;
a=&b;//使指针a指向变量b;所谓a指向变量b,就是指针a的内存单元中存放的内容是b变量的地址;那么1456231FH这个内存单元中存放的内容就是FFFFFFFFH;
int c=*a;//指针a访问它所指向的变量,取出变量值;然后赋值给c;
&a;//该指针变量有自己的地址,为1456231FH;
以下是证实代码:
void main()
{
int s=2;
int *a;
a=&s;
printf("main.a=%d\n",*a);
printf("main.a.thing=%x\n",a);
printf("main.s.address=%x\n",&s);
printf("main.a.address=%x\n",&a);
}
运行结果:
由此可以验证,指针变量中存放的就是它所指向的变量的地址。