在程序较大, 指针应用较多的情况时 ,容易犯以下这个低级错误:
int *p
.........
*p = 365;
.........
即指针P没有指向,不能确定365存储在什么位置。在指针定义后,一定要养成一个良好的习惯:给他一个指向。在LINUX/ WINDOWS PC 及各种ARM 平台会产生不同类型的(未知)错误,严重时会使系统崩溃。(当他恰好指向不该由他指的合法地址时,产生的后果更加恐怖:他会修改其他值,而让程序员产生迷惑)
NULL指针:表示某个特定的指针目前并未指向任何东西。
1. 用它来指向空指针。(做初始化)
2. 用它来传达两个信息:例如,一个用于某个数组中查找某个特定值的函数可能返回一个指向查找到的数组元素的指针,如果该数组不包含指定条件的值,函数就返回一个NULL指针,这个技巧允许返回值传达两个不同片段的信息。首先,有没有找到元素?其次,如果找到,它是哪个元素? 注:这技巧很常用,但违背了软件工程的原则。用一个单一的值表示两个不同的意思是很危险的,因为,尤其是在大程序中很难弄清它到底是哪个意思。有一种更为安全的方法是:让函数返回两个独立的值,首先是个状态值,用于提示查找是否成功;其次是个指针,当状态值提示查找成功时,它所指向的就是查找到的元素。
3. 不要去获取NULL指针的值!
总结:培养良好的习惯,每个指针在定义后都给它一个指向。