指针变量初始化为NULL啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针变量初始化为NULL啥意思相关的知识,希望对你有一定的参考价值。
1.为什么指针变量定义时一定要初始化?
2.指针变量初始化为NULL是什么意思?
答:因为你首先要理解一点.内存空间不是你分配了才可以使用
只是你分配了之后使用才安全,为什么要进行对他初始化呢
因为,如果你没对他初始化,而引用这个指针并却其指向的内存进行修改
因为指针未被初始化,所以指针所指向的也是随机的,他是个野指针,如果你引用指针,并修改这个指针所指向的内容,而如果这个指针所指向的内容恰好是另外一个程序的数据的话,你将其进行修改了,就会导致另外一个程序可能不能正常运行了.所以使用前一定要进行初始化
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啥意思的主要内容,如果未能解决你的问题,请参考以下文章