指针初始化的问题

指针初始化的问题

指针的初始化一:

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;

是一回事