未初始化的指针
来源:互联网 发布:上师大 vpn mac 编辑:程序博客网 时间:2024/04/29 15:03
1.我们定义了一个指针,一定要初始化,比如 int* a,没有初始化时,a的指向是不明确的。若它指向非法地址,这时的操作会报异常;若它指向一个合法地址,这是非常危险的,因为这样可能更改一个正在使用的数值。若在MCU中,指针指向非法地址,程序会跑飞。
2.关于NULL指针,有时我们会写一个函数,这个函数返回一个值,但有时这个值可能会不存在,那么就需要返回一个代表这个值不存在的值。这样,就会造成一个值代表两种不同的意思,这是违背软件工程的原则的。这时,我们应该返回一个bool型的变量,代表这个值是不是有效的,然后将返回的值放在指针型参数中。
3.有时我们知道地址的具体值,比如我们要往地址为100的地方存入一个数:*100=25,但这个表达式是非法的,因为100是整型,间接访问操作(*)只能作用于指针类型表达式,所以我们需要将100强制转换成指针:*(int*)100=25,在MCU中,我们经常可以看到
#define ADC0_BASE (0x40002000UL) /**< ADC0 base address */#define ADC0 ((ADC_TypeDef *) ADC0_BASE) /**< ADC0 base pointer */其中ADC0_BASE是一个unsigned long类型的常量,我们将这个常量转换成ADC_TypeDef类型的指针,那么,在以后的编程中,我们就可以使用ADC0这个指针了:ADC0->REG0,“->”是用于指针访问
0 0
- 未初始化的指针
- 未初始化和非法的指针
- 未初始化和非法的指针
- 指针未初始化 带来的危害
- 未初始化和非法的指针
- 指针未初始化问题
- 空指针和未初始化的指针的区别
- 空指针和未初始化的指针的区别
- void指针 null指针 未初始化指针
- c++中未初始化的指针不等于NULL
- 指针未初始化引发的程序奔溃问题
- 未初始化指针作为实参的两种错误总结
- 为什么未初始化的指针会指向一个不确定地址
- C++使用未初始化的指针和赋值为0的指针
- 未初始化的教训
- 何为指针(二)未初始化和非法的指针
- C语言指针未初始化情况
- C++指针未初始化和编译器优化造成的奇怪的程序崩溃
- 发现了以元素'd:skin'开头的无效内容,此处不应含有元素——Eclipse下配置Android时的错误警告处理
- 小马哥---高仿红米note刷机 主板型号m8207 4G版 4月版本白标拆机主板图与开机界面图
- 项目四——顺序表的运用(1)
- LeetCode 220. Contains Duplicate III
- 类对象的创建及级联方法
- 未初始化的指针
- 2015长春网络赛
- 树莓派初体验,安装Ubuntu 14.04 LTS
- 赛马网ACM试题(原杭电oj ACM)java版答案(1000,10001,1002)
- 位操作
- 整理的面向对象的知识架构,相信一定会对大家有帮助,给大家分享一下、
- iOS中 沙盒(sandbox)与归档(NSKeyedArchiver)
- Understanding ActiveMQ Broker Networks - 理解ActiveMQ 网络模型
- C#实现字符串数组的TreeMap排序