一个非常简单的例子
定义一个int
类型普通变量i
,定义一个指针类型变量p
,让p
指向i
#include<stdio.h>
int main(void)
{
int * p;
/*
p是指针变量的名字,int * 是变量p的类型
这种类型的变量p,存放的是int类型变量的地址
*/
int i = 10086;
p = &i;
/*
在这里,p存入了int类型变量i的地址,也称p指向了i
p和i不是同一个东西,修改p的值不会影响到i,只会导致p不再指向i
由于指针变量p指向了普通变量i,则有如下结论:
*p 全等于 i
*/
return 0;
}
通过这个简单的例子可以得到以下结论:
1 . p
指向了i
2 . *p
完全等价于i
,即*p
⇔i
3 . *p
就是一个以p
的内容作为地址的变量
4 . 在所有出现*p
的地方都可以替换成i
,反过来也可以
那指针和指针变量的区别是啥:
1 . 指针就是地址,地址就是指针。地址是内存单元的编号
2 . 指针变量就是存放地址的变量
3 . 注意:叙述时,通常会将指针变量简称为指针,但是实际上它们不是同一个东西