目录

  • 一.关于 NULL 定义
  • 二.NULL 和 0 区别
  • 三.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.关于 NULL 定义

NULL 在 stdio.h 中定义如下:

#if !defined(NULL) && defined(__NEEDS_NULL)
#ifdef __cplusplus
#define NULL    0
#else
#define NULL    ((void *)0)
#endif
#endif

二.NULL 和 0 区别

在 C 语言中,NULL 和 0 的值都是一样的,但是为了目的和用途及容易识别的原因,NULL 用于指针和对象,0 用于数值;

#include<stdo.h>
int main()
{int *p=NULL;printf("%s",p);}/*
输出:
0x00000000
*/

由上面代码可以看出:NULL 在实际底层调用中就是 0 ;

在不同的系统中,NULL 并非总是和 0 等同,NULL 仅仅代表空值,也就是指向一个不被使用的地址,在大多数系统中,都将 0 作为不被使用的地址,所以就有了类似这样的定义

#define NULL 0

但并非总是如此,也有些系统不将 0 地址作为 NULL ,而是用其他的地址,所以说,千万别将 NULL 和 0 等价起来,特别是在一些跨平台的代码中,这更是将给你带来灾难。

三.猜你喜欢

  1. C 语言 数组下标越界和内存溢出区别
  2. C 语言 使用指针遍历数组
  3. C 语言 指针和数组区别
  4. C 语言 指针数组和数组指针区别
  5. C 语言 野指针
  6. C 语言 函数值传递和址传递
  7. C 语言 函数不定长参数
  8. C 语言 函数指针
  9. C 语言 指针函数
  10. C 语言 回调函数 callback
  11. C 语言 #pragma once
  12. C 语言 #include <> 与 #include “” 区别
  13. C 语言 const 修饰函数参数
  14. C 语言 const 和 define 区别
  15. C 语言 #运算符
  16. C 语言 ##运算符
  17. C 语言 __VA_ARGS__
  18. C 语言 ##__VA_ARGS__
  19. C 语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C 语言 va_start 宏
  21. C 语言 va_end 宏
  22. C 语言 va_arg 宏
  23. C 语言 vprintf 函数
  24. C 语言 va_start / va_end / va_arg 自定义 printf 函数
  25. C 语言 main 函数
  26. C 语言 main 函数参数 main(int argc, char *argv[])
  27. C 语言 exit 函数
  28. C 语言 abort 函数
  29. C 语言 assert 函数
  30. C 语言 NULL 和 0 区别

未经允许不得转载:猿说编程 » C 语言 NULL 和 0 区别

C语言 NULL 和 0 区别 - C语言零基础入门教程相关推荐

  1. C语言 const 修饰函数参数 - C语言零基础入门教程

    C语言 const 修饰函数参数 - C语言零基础入门教程 目录 一.const 简介 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数 ...

  2. 0基础能学漫画么?漫画零基础入门教程!

    漫画零基础入门教程!很多人都喜欢看动漫,同时也会幻想成为动漫里的主角,与此同时也会诞生学漫画的想法.不论是你真的想学习漫画,又或出于个人爱好,或职业需要,或为了具备一项自己喜欢的看家本领.我们都要先清 ...

  3. C语言 const 和 define 区别 - C语言零基础入门教程

    目录 一.const 使用 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面 4.const 修饰在函数名后面 5.const 修饰函数参数 二.define 使用 ...

  4. C语言 #include <> 与 #include “” 区别 - C语言零基础入门教程

    目录 一.什么是头文件 二.#include <> 三.#include "" 四.#include <> 与 #include "" ...

  5. C语言 typedef 和 define 区别 - C语言零基础入门教程

    目录 一.typedef 简介 1.typedef 简化复杂的类型声明 A.定义普通变量 B.定义函数指针 C.定义结构体 2.定义与平台无关的类型 二.define 简介 三.typedef 和 d ...

  6. C语言 函数指针和指针函数区别 - C语言零基础入门教程

    目录 一.函数指针和指针函数声明的区别 1.函数指针 2.指针函数 二.函数指针和指针函数调用的区别 1.函数指针的调用 2.指针函数的调用 三.猜你喜欢 零基础 Python 学习路线推荐 : C/ ...

  7. C语言 空指针 NULL - C语言零基础入门教程

    目录 一.指针简介 二.空指针 NULL 三.关于 NULL 和 0 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.指针简介 在前面 ...

  8. C语言 vprintf 函数和 printf 函数区别 - C语言零基础入门教程

    目录 一.vprintf 函数和 printf 函数声明简介 1.printf 函数声明 2.vprintf 函数声明 二.vprintf 函数和 printf 函数使用 三.猜你喜欢 零基础 C/C ...

  9. C语言 全局变量和局部变量区别 - C语言零基础入门教程

    目录 一.全局变量和局部变量简介 1.全局变量简介 2.局部变量简介 二.全局变量和局部变量注意事项 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语 ...

最新文章

  1. 全球AI技术开放日系列之(七):走进阿里业务中台
  2. MyBatis源码骨架分析
  3. 远程断开远程桌面会话之方法
  4. Google与Binomial合作开源Basis Universal GPU纹理编解码器
  5. 数据结构--线性表顺序存储(顺序表)
  6. python str translate,str.translate() --文本过滤和处理
  7. 12.history的用法
  8. 站怎么点都是一样_老鼠被卡在轮胎里,像是被点了穴道一样:这可怎么办才好?...
  9. 60-100-040-使用-DataSource-介绍
  10. python自加1_使用Python如何让里面的某个参数每调用一次程序就自加1
  11. jquery基础选择器和层次选择器
  12. 卡方检验2-python代码实现
  13. itx机箱尺寸_讲解 ATX M-ATX ITX 各种主板尺寸
  14. Scrapy框架的基本组成及功能使用
  15. 微信小程序官方界面UI设计秘籍
  16. 【无线芯片解读】2.4G专题:(SI24R1简版)Ci24R1
  17. AXD 调试经验,使用及问题
  18. CTF ics-04
  19. Javascript 与 或 非 符号
  20. 【机器人】基于指数积的机械臂正运动学算法

热门文章

  1. 3+1保障:高可用系统稳定性是如何炼成的?
  2. 赛题解析|初赛赛道三:服务网格控制面分治体系构建
  3. X-Pack Spark归档POLARDB数据做分析
  4. JetBrains发布两项重要更新:基于IDE的远程开发解决方案、轻量级编辑器Fleet
  5. 30岁,真的是程序员迈不过去的坎吗?
  6. TigerGraph持续产品创新,发布最新的“全民图”版本
  7. 阿里云PolarDB重大更新:两大技术突破,传统数据库一键迁移上云
  8. apache 统计404日志_Apache监控与调优(四)Apachetop监控
  9. java变位词_GoLang 字符串变位词
  10. store下拉框同步_关于选择主下拉框后~后面的下拉框跟着同步一起变化的问题~~...