20_02_13笔记——《你必须知道的495个C语言问题》

《你必须知道的495个C语言问题》笔记
第5章 空指针

5.1 空指针是什么?
a:空指针不会指向任何地方,不是任何对象或函数的指针。所以它不同于未初始化的指针。

5.2 怎样获得一个空指针?
a:在初始化、赋值或比较的时候,若一边是变量或指针类型的表达式,编译器可以确定另一边的常数0为空指针并生成正确的空指针。

5.3 用缩写的指针比较“if(p)”检查空指针是否有效?如果空指针的内部表达不是0会怎样?
a:有效,只要写出if(expr),编译器实际上都会把他当成if((expr)!=0)。

5.4 NULL是什么,他是怎么定义的?
a:一种预处理,为空指针常量,通常是0或((void *)0)。

5.15 关于空指针两条简单规则:
1.源码中需要空指针常量时,用“0”或“NULL”;
2.若在函数调用中“0”或“NULL”用作参数,把他转换成被调函数需要的指针类型。

5.18 运行时整数值0转换为指针以后一定是空指针吗?
a:不。只有常量整型表达式0才能保证表示空指针。

5.19 如何访问位于机器地址0处的中断向量?
a:可能的方法:1.简单地给指针赋0值;2.将整数0赋给一个int型变量,然后将int变量转换为指针;3.用一个联合将指针值得位都置为0;4.使用memset将指针变量的所有位都置为0;5.声明一个外部变量或数组,然后调用使这个符号指向地址0。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值