悬空指针

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

①内存分配:

②函数调用:

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

C语言C++编程学习交流圈子【点击进入】微信公众号:C语言编程学习基地

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

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

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/366Z/p/14598677.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程