梁文轩 指针基础 1

    在程序较大, 指针应用较多的情况时 ,容易犯以下这个低级错误:

    int    *p

    .........

    *p = 365;

    .........

    即指针P没有指向,不能确定365存储在什么位置。在指针定义后,一定要养成一个良好的习惯:给他一个指向。在LINUX/ WINDOWS PC 及各种ARM 平台会产生不同类型的(未知)错误,严重时会使系统崩溃。(当他恰好指向不该由他指的合法地址时,产生的后果更加恐怖:他会修改其他值,而让程序员产生迷惑)

  

 

    

   NULL指针:表示某个特定的指针目前并未指向任何东西。

1. 用它来指向空指针。(做初始化)

2. 用它来传达两个信息:例如,一个用于某个数组中查找某个特定值的函数可能返回一个指向查找到的数组元素的指针,如果该数组不包含指定条件的值,函数就返回一个NULL指针,这个技巧允许返回值传达两个不同片段的信息。首先,有没有找到元素?其次,如果找到,它是哪个元素? 注:这技巧很常用,但违背了软件工程的原则。用一个单一的值表示两个不同的意思是很危险的,因为,尤其是在大程序中很难弄清它到底是哪个意思。有一种更为安全的方法是:让函数返回两个独立的值,首先是个状态值,用于提示查找是否成功;其次是个指针,当状态值提示查找成功时,它所指向的就是查找到的元素。

 3. 不要去获取NULL指针的值!

 

 

总结:培养良好的习惯,每个指针在定义后都给它一个指向。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值