C语言null值初探
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值初探相关推荐
- c语言stdio中null的值,C/C++编程笔记:C语言NULL值和数字 0 值区别及NULL详解
原创 程序员无言 2020-07-01 在学习C语言的时候,我们常常会碰到C语言NULL值和数字 0 ,很多小伙伴搞不清楚他们之间的一个区别,今天我们就了解一下他们之间的区别,一起来看看吧! 先看下面 ...
- C语言-NULL的值到底是什么?
废话不多说,直接上代码 NULL 的值定义在stdio.h文件中 /* Define NULL pointer value */#ifndef NULL #ifdef __cplusplus #def ...
- golang 数据库null值错误 解决方法
遇到问题: converting NULL to string is unsupported 定义的结构体中 结构体成员类型为string,从mysql数据库中查询数据中有NULL值,go语言执行sc ...
- C语言 NULL 和 0 区别 - C语言零基础入门教程
目录 一.关于 NULL 定义 二.NULL 和 0 区别 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.关于 NULL 定义 NU ...
- mysql中null值求和_sql求和涉及到null值
SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表: P_Id ProductName UnitPrice ...
- C语言二值图的腐蚀膨胀及开闭运算
(M2C系列)C语言二值图的形态学腐蚀膨胀及开闭运算 一.结构元 二.腐蚀 三.膨胀 四.开闭运算 五.其他 by HPC_ZY 由于剧情,需要纯C(不用三方库)实现图像算法.但作为一名MATLAB老 ...
- js声明数组 js数组如何获取真实对象 js数组处理null值情况 js数组通过下标赋值和push赋值的区别 loopback4的基础使用
目录 问题来源 js数组 数组通过下标赋值 数组通过push赋值 总结 loopback4 安装 创建项目 项目启动 访问项目 创建HelloController 运行访问HelloControlle ...
- java boolean空_java - 什么时候应该使用Boolean的null值?
java - 什么时候应该使用Boolean的null值? Java boolean允许值Boolean和false,而布尔值允许true,false和null.我已经开始将booleans转换为Bo ...
- c语言大小写null,C语言NULL指针
C语言NULL指针教程 在 我们在定义指针时或者再指针使用完毕,不再使用时,一定推荐将指针设置为 NULL,表明该指针不再指向任何数据. C语言NULL指针详解 定义 #define NULL ((v ...
最新文章
- C++实现二分查找(递归方法和非递归方法)
- 学习打卡-2018/08/09
- 面向对象编程(十五)——抽象类和接口
- 写作14个月,审稿花10年:这篇论文解决了数学物理界的大问题
- HyperLPR Python3车牌识别系统的入门使用
- 高级软件工程第七次作业:东理三剑客团队作业-随笔2
- 李航《统计学习方法》第三章课后答案链接
- 学生管理系统IPO图_高校学生考勤管理系统
- 一.全局定位--开源定位框架LIO-SAM_based_relocalization实录数据集测试
- 精美卡通儿童教育班会课件PPT模板
- 图神经网络对抗攻击的研究学习(一)
- 零基础教程-如何快速将EXCEL表格数据拆分成多个文件
- 使用VPB生成OSG的.ive格式地形方法
- 2022最新酒桌小游戏小程序源码+附带流量主
- 服务器创建虚拟主机,服务器创建虚拟主机
- 一个学计算机应用基础,用微课学·计算机应用基础
- python文件处理,得到DNA的互补链或反向互补链
- 参加计算机能力培训计划,计算机技能 培训计划.doc
- Windows 11安装后,中文输入法无法使用?
- 「背叛」激光雷达第三年:百度纯视觉无人驾驶技术迈入产品化阶段
热门文章
- Ubuntu,由于没有公钥,无法验证下列签名: NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY 0E98404D
- educoder头歌Web实训 web课——综合应用案例:限时秒杀效果的制作
- Linux高精度struct timespec和struct timeval
- 在pycharm中设置pylint控制代码质量
- 点云分割学习笔记2022
- 一个真正成熟的人,从不在意别人的评价
- 实时数仓-数据时效性如何保障?
- 【开源我写的富文本】打造全网最劲富文本系列之大话技术难点与特色设计。...
- 计算机仿真模拟在装配,飞机装配仿真中数字人模型及工人姿态的模拟
- 基于JavaSwing的学生考勤管理系统设计与实现