C++ 学习笔记

c++入门学习笔记

1. 空指针 与 野指针

空指针最简单的方法是定义为null

int *p = NULL;

或者 int *p= nullptr;

也有把指针定义为0的, 具体参阅:

http://www.cnblogs.com/porter/p/3611718.html

https://www.cnblogs.com/Yan47/p/5968676.html

结论: 如果使用 nullptr 初始化对象,就能避免 0 指针的二义性的问题。

NULL是一个宏定义, #define NULL 0;

要时刻记得这个事情, 程序在判断类型的时候, NULL会被认为是int型变量, nullptr才是空指针, 是指针型变量.

 

空指针和野指针的判断问题:

空指针是很好判断的. 但是野指针很难判断.

空指针不指向任何实际的对象或者函数, if(p != nullptr)就可以判断

野指针是指针指向地址是随机的, 或者是无效的.

可能是一, 初始化时未声明为null或nullptr

二, 释放指针所指向内存, 但指针没有置为null

避免方法: 初始化必设置为nullptr, 释放必设为nullptr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值