
指针的初始化一:
int
i;
int
*p;
p=&i;
二:如果在数组中
int
a;
int
*p;
p=&a;或者p=a;
也就是说在数组中给指针变量初始化可以没有&
三:int
*p=null
说明指针指向空,所以不用加&
*a=&b好像有点问题,应该是a=&b;
在不同的地方*表示的含意是有区别的。
当*出现在类型定义时(类型之后的地方),如int
*p;那这是告诉编译器变量p的类型为int类型的指针(int*),所以你还可以这样写int*
p;或int
*
p;都是可以的。
而直接出现在变量后(不是定义时),就表示解引用.
int
*p;
p
=
&n
是先定义p为一个int型的指针,然后让p等于(指向)整型n的地址
而int
*p
=
&n
变量p实际上是在定义的同时赋了初值,因此这里p前面的*是要和类型(也就是int)合起来看,表示p是一个int型的指针!此时,千万不要把*和p一起来看!
所以
int*
p;
//把*写得和int靠拢一些,强调int*是一种类型
p
=
&n
和
int*
p
=
&n
是一回事
就好比:
int
i;
i
=
n;
和
int
i
=
n;
是一回事
