第一生活网

指针初始化为null(指针初始化)

尉迟文枫
导读 大家好,小芯来为大家解答以上的问题。指针初始化为null,指针初始化这个很多人还不知道,现在让我们一起来看看吧!1、声明了一个指针变量 i

大家好,小芯来为大家解答以上的问题。指针初始化为null,指针初始化这个很多人还不知道,现在让我们一起来看看吧!

1、声明了一个指针变量 int *p后,p的址址即告确定,但p的值是随机值,会指到哪里去谁也不知道,所以叫“野指针”。

2、只有对p人为进行赋值后,p的值才可控,特别的,对p的第一次人为赋值,称为初始化。

3、所以你提到的第一、二种方法都是初始化。

4、关于赋给p的应该是什么值,不要太着相了,p就是个4字节变量而己,理论上4字节长的数值都可以赋,当然实际上出于安全考虑,不会这么乱来。

5、举例来说:(1)&i:就是i的地址。

6、其实也是一个数值,只是省了你自己查找i地址的麻烦。

7、(2)i:如是i是一个整型变量,并且其数值作为地址是有意义的,就可以(3)NULL:就是0。

8、0作为地址可以吗?当然可以。

9、你写成int *p=0也一样。

10、综上:只声明、没赋值过的指针都是野指针,初始化就是第一次赋值。

11、能赋给指针的,只要是可以解释为地址的数值都可以。

12、指针的初始化一:int i;int *p;p=&i;二:如果在数组中int a[10];int *p;p=&a[0];或者p=a;也就是说在数组中给指针变量初始化可以没有&三:int *p=NULL 说明指针指向空,所以不用加&同志,搞清楚这个问题的关键是分清楚类型一致。

13、p为指针故只能将一个变量的地址赋给它 , 初始化的意思就是第一次出现该指针的赋值动作。

14、后续对它的操作时赋值而不能说是初始化。

15、 至于NULL该变量是一个被系统定义为空指针的标记。

本文到此分享完毕,希望对大家有所帮助。