1.为什么指针变量定义时一定要初始化?
因为你首先要理解一点:内存空间不是你分配了才可以使用只是你分配了之后使用才安全。
为什么要进行对指针初始化呢?
因为指针未被初始化,所以指针所指向的也是随机的,他是个野指针,如果你引用指针,并修改这个指针所指向的内容,而如果这个指针所指向的内容恰好是另外一个程序的数据的话,你将其进行修改了,就会导致另外一个程序可能不能正常运行了。
2.指针变量初始化为NULL是什么意思?
意思是说,强指针变量置空,初始化为NULL,使它不指向任何内容,这样引用它也不会出现上面的问题
总之一点,记住在使用指针之前要对它进行初始化操作就可以了
3、空指针和未初始化的指针
空指针的简单描述:它 “与任何对象或函数的指针值都不相等”。也就是说, 取地址操作符 & 永远也不能得到空指针, 同样对 malloc() 的成功调用也不会返回空指针, 如果失败, malloc() 的确返回空指针, 这是空指针的典型用法:表示 “未分配”或者 “尚未指向任何地方”的指针。
空指针和未初始化的指针:
空指针在概念上不同于未初始化的指针。空指针可以确保不指向任何对象或函数; 而未初始化指针则可能指向任何地方。
参考文献: