空指针和未初始化的指针的区别

转载: https://blog.csdn.net/qingkongyeyue/article/details/53994355


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

2.指针变量初始化为NULL是什么意思?

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

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

3、空指针和未初始化的指针

空指针的简单描述:

它 “与任何对象或函数的指针值都不相等”。也就是说, 取地址操作符 & 永远也不能得到空指针, 同样对 malloc() 的成功调用也不会返回空指针, 如果失败, malloc() 的确返回空指针, 这是空指针的典型用法:表示 “未分配”或者 “尚未指向任何地方”的指针。
================================================================================
空指针和未初始化的指针:
空指针在概念上不同于未初始化的指针。空指针可以确保不指向任何对象或函数; 而未初始化指针则可能指向任何地方


猜你喜欢

转载自blog.csdn.net/zhenguo26/article/details/80720209