C++入门【26-C++ Null 指针】

在变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL 值是一个良好的编程习惯。赋为 NULL 值的指针被称为空指针。

NULL 指针是一个定义在标准库中的值为零的常量。请看下面的程序:

实例

cpp 复制代码
#include <iostream>
using namespace std;
int main ()
{
   int  *ptr = NULL;
   cout << "ptr 的值是 " << ptr ; 
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

ptr 的值是 0

在大多数的操作系统上,程序不允许访问地址为 0 的内存,因为该内存是操作系统保留的。然而,内存地址 0 有特别重要的意义,它表明该指针不指向一个可访问的内存位置。但按照惯例,如果指针包含空值(零值),则假定它不指向任何东西。

如需检查一个空指针,您可以使用 if 语句,如下所示:

if(ptr) /* 如果 ptr 非空,则完成 */

if(!ptr) /* 如果 ptr 为空,则完成 */

因此,如果所有未使用的指针都被赋予空值,同时避免使用空指针,就可以防止误用一个未初始化的指针。很多时候,未初始化的变量存有一些垃圾值,导致程序难以调试。

相关推荐
吴阿福|一人公司4 分钟前
类变量和实例变量的命名规范有哪些避坑点?
开发语言·python
Aaswk5 分钟前
Java项目:文件批量处理工具
java·开发语言·vscode·idea
晚风吹红霞18 分钟前
深入浅出 STL 之 map 与 set:从入门到实战
开发语言·c++
牛油果子哥q21 分钟前
【C++封装】C++封装思想与访问权限终极精讲:public/private/protected权限解析、类封装设计、继承权限变化、工程私有化规范与面试坑点
c++·面试
织梦旅途21 分钟前
C++ 第一课 从 Hello Word!立刻开始
c++
.千余25 分钟前
【C++】 String 常用操作:增删查改 | 查找 | 截取 | IO
java·服务器·开发语言·c++·笔记·学习
码云骑士27 分钟前
【Java基础】JDK安装常见问题教辅-从踩坑到排雷
java·开发语言
jelly酱28 分钟前
Qt 坐标体系入门:从 GUI 概念到坐标实践
c++
代码改善世界29 分钟前
【C++进阶】哈希表封装unordered_map和unordered_set
c++·哈希算法·散列表
c2385631 分钟前
C++ lambda 表达式详细介绍
开发语言·c++