1、空指针表示"未分配"或者"尚未指向任何地方"。它与未初始化的指针不同,未初始化的指针可能指向任何地方。每种指针类型都要一个空指针,而不同类型的空指针的内部可能不尽相同。

2、一般给指针赋值0就是将指针设为空指针(等同设为NULL)。但是0作为函数参数,传给指针时需要对0作类型转换。

3、可以使用if(p)等同于if(p != 0),但是这种风格不好。

4、NULL实际上是一个定义在 stdio.h中定义的宏,代表空指针常数,赋给指针,等同于0。欲处理器把所有NULL都转换为0

总结:两条规则:
   (1)当需要使用空指针常数,使用0或者NULL
   (2)当在函数调用中使用0或者NULL用作参数,把它转换成被调
       函数需要的指针类型。

转载于:https://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741366.html

C语言细节之四: 空指针相关推荐

  1. C语言中的空指针、空指针常量、NULL 0

    C语言中的空指针.空指针常量.NULL & 0  本文转自: http://bbs.chinaunix.net/viewthread.php?tid=544415&extra=& ...

  2. Verilog 语言细节

    Verilog 语言细节 一.关于常量 1.1 负数 ​ 负数在verilog里是按照补码储存的,也就是说 − 2 ′ b 1 = 11 -2'b1 = 11 −2′b1=11,但是需要注意的是,在比 ...

  3. quot c语言数组压缩 quot,程序员之---C语言细节12(指针和数组细节,quot;//quot;的可移植性说明)...

    主要内容:指针和数组细节,"//"的可移植性说明 #include int main(int argc, char **argv) { int a[10]={1,2,3,4,5,6 ...

  4. 逍遥自在学C语言 | 指针陷阱-空指针与野指针

    前言 在C语言中,指针是一种非常强大和灵活的工具,但同时也容易引发一些问题,其中包括空指针和野指针. 本文将带你了解这两个概念的含义.产生原因以及如何避免它们所导致的问题. 一.人物简介 第一位闪亮登 ...

  5. 理解C语言中的空指针和野指针

    在C语言中,指针是一个非常重要的概念,可以用于操作变量和数据结构.但是,指针也是很容易出错的地方.其中包括两种可能的错误:空指针和野指针. 空指针 空指针指代无效的地址,表示指针不指向内存中的任何一个 ...

  6. c语言分段错误空指针,C语言空指针总结 - 祂的小哥哥的个人空间 - OSCHINA - 中文开源技术交流社区...

    空指针就是指向不可访问区域的的指针,它的值为NULL,地址一般是内存的首地址.详情见代码1.2及其运行结果. NULL是标准库定义的等于0的常量符号. 不可访问和内存的划分有关.系统会在每个程序被调用 ...

  7. drupal建设多语言站点之四:不同语言的站点名称

    阅读此篇文章之前请阅读以下三篇文章: durpal建立多语言站点之三:内容多语言 进入Drupal中sites/default 的目录下,编辑Settings.php文件,自文件后面添加如下两句话: ...

  8. C语言--指针之空指针(void *)

    文章目录 前言 一.void *指针是什么? void*指针简单使用 二.指针内存大小 指针所占大小 void *类型指针与其他类型指针区别 基本区别 取值操作与地址增长操作 三.void *指针作为 ...

  9. 23/09/2022 c语言细节

    格式  1.输出字符型是 cout<<char(a-32) char是转换 就是运用ASCII代码转换 2.找最小数问题 3.关于结束 int main(){     return 0; ...

最新文章

  1. centos 7--LNMP环境部署
  2. tensorflow在训练的时候权重是nan,如何解决
  3. Keil C 里面Lib库文件的生成与调用
  4. android的findviewbyid,Android O预览findViewById编译错误
  5. java遍历Set集合
  6. 信度和效度经典例子_浅析经典目标检测评价指标--mmAP(一)
  7. 【纪中集训】2019.08.13【省选组】模拟3
  8. 【解题报告】【HODJ1231】【最大子序列和】最大连续子序列
  9. 视频监控系统运维解决方案
  10. CISCO技术(1.7万)
  11. python批量处理图片统一尺寸
  12. 前端内容安全策略(csp)
  13. Visio画UML用例图
  14. 计算机中什么是数组公式,数组公式指南和示例
  15. drawio二次开发
  16. Skype、MSN/Live Messenger、Lync全面整合
  17. 无线安全审计工具 Fern WiFi Cracker
  18. 【深度学习】实例分割网络
  19. linux4.4 grub2文件在,grub2
  20. 微信小程序 实现倒三角位置指示

热门文章

  1. 在ubuntu上安装Oracle Java SDK
  2. mysql 表与表之间的条件比对_《MySQL数据库》关联查询
  3. (19)Verilog HDL顺序块:begin-end
  4. (47)FPGA面试技能提升篇(Aurora协议/接口)
  5. linux sort多磁盘排序,linux shell sort多字段排序
  6. STM32F103_EXTI外部中断
  7. 使用J-flash arm下载程序
  8. 【C语言】qsort函数用法(转)
  9. 库ppt演示 python_python操作Power Point:PPT幻灯片布局基础
  10. 鸿蒙应用开发--事件