【c基础知识】指针注意事项
2017-10-12 20:12
204 查看
1.不允许向NULL和非法地址拷贝内存:
标准定义了NULL指针,它作为一个特殊的指针变量,表示不指向任何东西。要使一个指针为NULL,可以给它赋值一个零值。为了测试一个指针百年来那个是否为NULL,你可以将它与零值进行比较。
对指针解引用操作可以获得它所指向的值。但从定义上看,NULL指针并未执行任何东西,因为对一个NULL指针因引用是一个非法的操作,在解引用之前,必须确保它不是一个NULL指针。
如果对一个NULL指针间接访问会发生什么呢?结果因编译器而异。
2.在使用指针时,要避免野指针的出现
标准定义了NULL指针,它作为一个特殊的指针变量,表示不指向任何东西。要使一个指针为NULL,可以给它赋值一个零值。为了测试一个指针百年来那个是否为NULL,你可以将它与零值进行比较。
对指针解引用操作可以获得它所指向的值。但从定义上看,NULL指针并未执行任何东西,因为对一个NULL指针因引用是一个非法的操作,在解引用之前,必须确保它不是一个NULL指针。
如果对一个NULL指针间接访问会发生什么呢?结果因编译器而异。
2.在使用指针时,要避免野指针的出现
什么情况下回导致野指针? n 指针变量未初始化 任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。 n 指针释放后未置空 有时指针在free或delete后未赋值 NULL,便会使人以为是合法的。别看free和delete的名字(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。此时指针指向的就是“垃圾”内存。释放后的指针应立即将指针置为NULL,防止产生“野指针”。 n 指针操作超越变量作用域 不要返回指向栈内存的指针或引用,因为栈内存在函数结束时会被释放。 操作野指针是非常危险的操作,应该规避野指针的出现:
|
相关文章推荐
- Oracle基础知识(十六) - 表或列的命名注意事项
- C语言基础:C语言指针(2) - 注意事项
- JAVA基础知识--代码注意事项
- Flex之旅:第一部分:flex必备基础知识积累(1)---监听键盘事件的注意事项
- css常用注意事项及基础知识点
- 【java基础知识(学习笔记)】--方法的重载注意事项
- C基础指针注意事项
- C基础,计算机中的数以及volatile限定修饰符,指针及其注意事项,external,static,Void *
- 关于Oracle的一些基础知识以及注意事项
- Java基础知识强化之IO流笔记11:递归之递归概述和注意事项
- SurfaceView 游戏开发的一些基础知识和注意事项
- Java基础知识强化之IO流笔记08:异常的注意事项
- iOS基础知识:if 语句以及if语句的使用注意事项
- 来了解一下Mysql索引的相关知识:基础概念、性能影响、索引类型、创建原则、注意事项
- Java基础知识强化61:经典查找之二分查找使用注意事项
- UIScrollView的基本使用方法和注意事项 - iOS - UI基础知识总结10
- 黑苹果安装及相关注意事项之二,基础知识
- 【开发管理类软件必备知识视频教程之一】登录窗体前台注意事项
- 【开发管理类软件必备知识视频教程之二】登录窗体后台注意事项
- 生产系统搭建spark,基础环境注意事项