指针变量初始化为NULL啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针变量初始化为NULL啥意思相关的知识,希望对你有一定的参考价值。

1.为什么指针变量定义时一定要初始化?
2.指针变量初始化为NULL是什么意思?

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

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

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

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


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

  #undef NULL
  #if defined(__cplusplus)
  #define NULL 0
  #else
  #define NULL ((void *)0)
  #endif

  可以看出c++中 NULL为(int)0 , C中NULL为(void*)0。看来C和C++中NULL宏的值略有不同。

参考技术B 1)不一定要初始化,但是不初始化的话该指针指向一个未知的位置,而这可能是未来程序的隐患。
2)NUll的意思就是使指针为空不指向任何地址。
参考技术C NULL的定义是这样的

#define NULL ((void *)0)

应用程序是不能访问0地址的,所以可以用0地址来表示一个空指针。

if(ptr != NULL)/*确保指针已经被初始化*/
参考技术D NULL的定义是这样的

#define NULL ((void *)0)

应用程序是不能访问0地址的,所以可以用0地址来表示一个空指针。

if(ptr != NULL)/*确保指针已经被初始化*/

指针变量初始化为NULL啥意思?

将指针初始化NULL即将指针初始化为0。
NULL宏是定义在标准库头文件stddef.h中。宏定义如下:
#undef NULL
#if defined(__cplusplus)
#define NULL 0
#else
#define NULL ((void *)0)
#endif
可以看出c++中
NULL为(int)0
,
C中NULL为(void*)0。看来C和C++中NULL宏的值略有不同。
参考技术A NULL的定义是这样的

#define NULL ((void *)0)

应用程序是不能访问0地址的,所以可以用0地址来表示一个空指针。

if(ptr != NULL)/*确保指针已经被初始化*/

以上是关于指针变量初始化为NULL啥意思的主要内容,如果未能解决你的问题,请参考以下文章

定义指针变量时,必须将指针变量初始化为NULL(为空),否则,指针变量会由于初始化位置的不确定

scala变量能初始化为null吗

指针初始化为NULL的作用

java中 Integer是啥意思

指针的null是啥意思

C - 为什么指针常常初始化为 NULL?