指针变量初始化为NULL什么意思

来源:百度知道 编辑:UC知道 时间:2024/09/26 14:03:29
1.为什么指针变量定义时一定要初始化?
2.指针变量初始化为NULL是什么意思?

1.为什么指针变量定义时一定要初始化?
答:因为你首先要理解一点.内存空间不是你分配了才可以使用
只是你分配了之后使用才安全,为什么要进行对他初始化呢
因为,如果你没对他初始化,而引用这个指针并却其指向的内存进行修改
因为指针未被初始化,所以指针所指向的也是随机的,他是个野指针,如果你引用指针,并修改这个指针所指向的内容,而如果这个指针所指向的内容恰好是另外一个程序的数据的话,你将其进行修改了,就会导致另外一个程序可能不能正常运行了.所以使用前一定要进行初始化

2.指针变量初始化为NULL是什么意思?
答:意思是说,强指针变量置空,初始化为NULL,使它不指向任何内容,这样引用她也不会出现上面的问题

总之一点,记住在使用指针之前要对它进行初始化操作就可以了

没有说一定要初始化,不初始化同样也可以用。
初始化是为了避免野指针,指针不初始化时,如char *p,有些编译器会随便给它赋个地址,这个地址是不可知的,为了避免出现不必要的麻烦,才用NULL 初始化一下。

一般来说,NULL赋给指针用的最多是在指针的内存被delete 或者 free操作回收之后,它所值的地址已经不可用了,需要将它赋NULL。以便于后面的程序判断它的内存是否已经被回收。

说白了,NULL就是起到一个标志的作用,让后面的程序可以根据这个标志知道这个指针的状态。

1.指针变量和普通变量一样,可以用来定义语句或者赋值语句的初始化,一般可以把指针为0,NULL,或某个地址。对指针初始化可以防止出现意想不到的结果。
2.指针变量被初始化为NULL时,表示该指针不指向任何值。把它初始化为0其实也等价于把它初始化为NULL,但一般使用NULL,0是唯一一个能够被直接赋予给指针变量的整型数。

       将指针初始化NULL即将指针初始化为0。


  NULL宏是定义在标准库头文件stddef.h中。宏定义如下:

  #undef NULL