悬空指针
指向已删除(或释放)的内存位置的指针称为悬空指针。指针用作悬空指针有三种不同的方式
①内存分配:
②函数调用:
如果x是静态变量,则不会出现问题(或p不会悬空)。
输出:5
变量超出范围
无效指针
无效指针是一种特定的指针类型– void * –指向存储中某个数据位置的指针,它没有任何特定的类型。空是指类型。基本上,它指向的数据类型可以是任何类型。如果我们将char数据类型的地址分配给void指针,它将成为char指针,如果是int数据类型,则将成为int指针,依此类推。任何指针类型都可以转换为空指针,因此可以指向任何值。
(1)void指针不能被取消引用。但是,可以使用类型转换void指针来完成
(2)由于缺少具体的值和大小,因此无法对void指针进行指针算术运算。
例子:
输出:
整数变量为= 4
浮动变量是= 5.500000
空指针
NULL指针是没有指向任何内容的指针。如果没有将地址分配给指针的情况,则可以简单地使用NULL。
输出 :
ptr的值为(null)
注意
(1)NULL与未初始化的指针–未初始化的指针存储未定义的值。空指针存储定义的值,但是环境定义的值不是任何成员或对象的有效地址。
(2)NULL vs void 指针–空指针是一个值,而空指针是一个类型
野指针
尚未初始化为任何值(甚至不是NULL)的指针称为野生指针。可以将指针初始化为一个非NULL垃圾值,该值可能不是有效地址。
每天学点小知识,希望对你有帮助~
另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~
编程学习书籍分享:
编程学习视频分享:
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
点击下方【了解更多】获取更多学习资料帮助你学习成长哦~
本文暂时没有评论,来添加一个吧(●'◡'●)