C语言中,NULL值到底是什么?代表着什么意思?

详细具体的可以去度娘一下,这里只发表一下自己对NULL值的理解。

简单的说,NULL值就是代表着“不可访问”。

看下面的例子:

#include <stdlib.h> #include <stdio.h> #include <string.h> int main(int argc,char *argv[]) { char *s; s = (char*)malloc(10*sizeof(char)); if(s == NULL){ printf("malloc error!/n"); return -1; } memset(s,0,10*sizeof(char)); if(s == NULL){ printf("something error!/n"); return -1; } memset(s,'0',10*sizeof(char)); if(s == NULL){ printf("something error2!/n"); return -1; } printf("all ok!/n"); return 0; }

这个例子最后打印的结果是什么呢?是 all ok!

而如果把 char *s 改为 char s[10];或者char s[];

那结果就更明了了,同样的是 all ok!

题外:

char *s 和 char s[]的定义,在C语言实现中是不同的;后者在编译阶段就会确定该变量,并为其分配地址;

而char *s则是在运行中动态生成的。因此,前者需要分配内存,需要check if(s == NULL),如果 s!=NULL,

表示该变量分配成功!

基于这一点,NULL值到底是0,还是'0',还是(void*)0其实都不重要了,都是不同编译器的不同定义,表层现象而已。

而本质就是,NULL代表着该地址不可访问!

个人见解,欢迎交流!

C语言null值初探相关推荐

  1. c语言stdio中null的值,C/C++编程笔记:C语言NULL值和数字 0 值区别及NULL详解

    原创 程序员无言 2020-07-01 在学习C语言的时候,我们常常会碰到C语言NULL值和数字 0 ,很多小伙伴搞不清楚他们之间的一个区别,今天我们就了解一下他们之间的区别,一起来看看吧! 先看下面 ...

  2. C语言-NULL的值到底是什么?

    废话不多说,直接上代码 NULL 的值定义在stdio.h文件中 /* Define NULL pointer value */#ifndef NULL #ifdef __cplusplus #def ...

  3. golang 数据库null值错误 解决方法

    遇到问题: converting NULL to string is unsupported 定义的结构体中 结构体成员类型为string,从mysql数据库中查询数据中有NULL值,go语言执行sc ...

  4. C语言 NULL 和 0 区别 - C语言零基础入门教程

    目录 一.关于 NULL 定义 二.NULL 和 0 区别 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.关于 NULL 定义 NU ...

  5. mysql中null值求和_sql求和涉及到null值

    SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductName UnitPrice ...

  6. C语言二值图的腐蚀膨胀及开闭运算

    (M2C系列)C语言二值图的形态学腐蚀膨胀及开闭运算 一.结构元 二.腐蚀 三.膨胀 四.开闭运算 五.其他 by HPC_ZY 由于剧情,需要纯C(不用三方库)实现图像算法.但作为一名MATLAB老 ...

  7. js声明数组 js数组如何获取真实对象 js数组处理null值情况 js数组通过下标赋值和push赋值的区别 loopback4的基础使用

    目录 问题来源 js数组 数组通过下标赋值 数组通过push赋值 总结 loopback4 安装 创建项目 项目启动 访问项目 创建HelloController 运行访问HelloControlle ...

  8. java boolean空_java - 什么时候应该使用Boolean的null值?

    java - 什么时候应该使用Boolean的null值? Java boolean允许值Boolean和false,而布尔值允许true,false和null.我已经开始将booleans转换为Bo ...

  9. c语言大小写null,C语言NULL指针

    C语言NULL指针教程 在 我们在定义指针时或者再指针使用完毕,不再使用时,一定推荐将指针设置为 NULL,表明该指针不再指向任何数据. C语言NULL指针详解 定义 #define NULL ((v ...

最新文章

  1. C++实现二分查找(递归方法和非递归方法)
  2. 学习打卡-2018/08/09
  3. 面向对象编程(十五)——抽象类和接口
  4. 写作14个月,审稿花10年:这篇论文解决了数学物理界的大问题
  5. HyperLPR Python3车牌识别系统的入门使用
  6. 高级软件工程第七次作业:东理三剑客团队作业-随笔2
  7. 李航《统计学习方法》第三章课后答案链接
  8. 学生管理系统IPO图_高校学生考勤管理系统
  9. 一.全局定位--开源定位框架LIO-SAM_based_relocalization实录数据集测试
  10. 精美卡通儿童教育班会课件PPT模板
  11. 图神经网络对抗攻击的研究学习(一)
  12. 零基础教程-如何快速将EXCEL表格数据拆分成多个文件
  13. 使用VPB生成OSG的.ive格式地形方法
  14. 2022最新酒桌小游戏小程序源码+附带流量主
  15. 服务器创建虚拟主机,服务器创建虚拟主机
  16. 一个学计算机应用基础,用微课学·计算机应用基础
  17. python文件处理,得到DNA的互补链或反向互补链
  18. 参加计算机能力培训计划,计算机技能 培训计划.doc
  19. Windows 11安装后,中文输入法无法使用?
  20. 「背叛」激光雷达第三年:百度纯视觉无人驾驶技术迈入产品化阶段

热门文章

  1. Ubuntu,由于没有公钥,无法验证下列签名: NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY 0E98404D
  2. educoder头歌Web实训 web课——综合应用案例:限时秒杀效果的制作
  3. Linux高精度struct timespec和struct timeval
  4. 在pycharm中设置pylint控制代码质量
  5. 点云分割学习笔记2022
  6. 一个真正成熟的人,从不在意别人的评价
  7. 实时数仓-数据时效性如何保障?
  8. 【开源我写的富文本】打造全网最劲富文本系列之大话技术难点与特色设计。...
  9. 计算机仿真模拟在装配,飞机装配仿真中数字人模型及工人姿态的模拟
  10. 基于JavaSwing的学生考勤管理系统设计与实现