计算机系统应用教程网站

网站首页 > 技术文章 正文

C/C++编程笔记:详解三种指针(悬空指针、空指针和野指针)

btikc 2024-09-12 12:06:22 技术文章 16 ℃ 0 评论



悬空指针

指向已删除(或释放)的内存位置的指针称为悬空指针。指针用作悬空指针有三种不同的方式

①内存分配:


②函数调用:


如果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++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

编程学习书籍分享:

编程学习视频分享:

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

点击下方【了解更多】获取更多学习资料帮助你学习成长哦~

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表