0,‘0’,‘\0’,null的区别
0:int型,表示数字0,ASCII码值为0;
’\0’:char型,表示一个字符串结束的标志,不会显示,也不会单独存在,ASCII码值为0;
null:表示空,一般代表0地址,ASCII码值为0 ;
’0’:char类型,表示字符的内容为0,ASCII码值为48。
从内存的角度看它们的区别:
在计算机内存中,0、’\0’、null是一样的,值都是0。以数字的方式读取就是0,以字符的方式读取就是’\0’,以某些其他方式读取就是null(比如指针,null的定义跟编译器有关,有的编译器定义null可能不是0);而’0’在内存中的值是48,以字符读取就是’0’,以数字读取就是48。
c语言中的NULL:
c语言中NULL的本质是0,但是这个0不是当一个数字来解析,而是当一个内存地址来解析的,这个0其实是0x00000000,代表内存的0地址。
我们经常会定义 int *p = NULL 来初始化防止野指针,但是为什么要让一个野指针指向内存0地址处呢?
主要是因为在大部分的CPU中,内存的0地址处都不是可以随便访问的,一般都是操作系统严密管控区域,所以应用程序不能随便访问,所以野指针指向了这个区域可以保证野指针不会造成误伤,如果程序无意识地解引用,指向0地址处的野指针则会出发段错误,这样就可以提示你找出程序中的错误。
一般比较一个指针和NULL是否相等不要写成 if ( p ==NULL),而写成 if ( NULL == p ),原因是第一种写法中如果不小心把双等号 == 写成单等号 = ,则编译器不会报错,但是程序的意思完全不一样了;而第二种写法如果不小心把双等号 == 写成了单等号 = ,则编译器会发现并报错。
0,‘0’,‘\0’,null的区别相关推荐
- c+语言+null,C/C++语言中NULL、'\0’和0的区别
NULL.'\0'和0的值是一样的,都是0,不过它们的表现形式不一样: 1. NULL: 即空指针,不过在C和C++中并不一样.在VS 2013的库文件string.h中可以看到如果定义. 1 /* ...
- php中0与NULL,False,“0”,\0的区别
先说明一下结论:0与NULL,False,"0","\0"的值相同,都以0存储,但是类型不同, 再看一段实验代码: <?php $test=0; if($ ...
- C语言中野指针、NULL、0与‘\0’的区别与用途
野指针:未初始化或初始化的指针. int*p;printf("%d",*p); NULL:代表空指针,也就是指向一个不被使用的地址. 0 :0用于数值,但在大多数系统中,都将0作为 ...
- C/C++中 0, ‘0’, “0”, “/0”和NULL的区别
0:数值常量 '0':字符常量, 在内存中的值是0x30. "0":字符串常量, 实际存储的时候是一个0x30, 一个\0. "\0":字符串结束符, NULL ...
- C-数字0 反斜杠0 字符0 NULL区别
数字0 '\0' NULL 都为数字0,NULL常用于0,0 '\0' 用于字符串结尾符 '0' 其对应的ascii 为48 '\0' 其对应的ascii 为0 printf("%d %d\ ...
- ‘\0’ ,‘0’, “0” ,0之间的区别
看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了'\0' ,'0', "0" 之间的区别 ...
- NULL,0,`0`,`\0`,0你分得清吗?
来源:公众号[编程珠玑] 作者:守望先生 网站:https://www.yanbinghu.com/2019/09/19/18180.html 前言 在C语言中,我们有时候看到NULL,有时候也看 ...
- c语言中\0’ ,‘0’, “0” ,0的区别
看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了'\0' ,'0', "0" 之间的区 ...
- 关于‘\0’,‘0’,“0”,0的区别
'\0'和'0'的异同点:有一个共同点就是它们都是字符:在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节. ASCLL表上的第一个ASCII码,对是0,对应的字符是(Null), ...
最新文章
- gson解析mysql城市json数据_Gson解析复杂的json数据
- 如何安装rpm包?掌握rpm包管理工具就够了
- 中央空调水系统与制冷系统运行参数
- 有5家衣服专卖店,每家最多购买3件,用户可以选择离开,可以买衣服,最后打印总共买了几件衣服
- G1垃圾收集器全视角解析
- JAVA设置按钮无效_JAVA设置的按钮监听没有反应
- linux中哪一个标记可以作为子进程,linux系统编程试卷(答案)
- HAUT校赛--最大奇子段和
- centos mysql lujin_MySQL中文转换成拼音的函数[zt]
- springweb 初步理解
- WPA2 Key Reinstallation 漏洞
- thrift开源项目研究
- 36氪开放日 —— 笔记
- bzoj 4987 Tree
- 《数字图像处理》学习总结及感悟:第二章数字图像基础(4)像素间的关系
- npm install --save 、--save-dev 、-D、-S的区别详细解说
- Linux 系统和安全
- excel 统计函数笔记
- 迅雷下载器-FDM,看2019新年大电影
- user administration
热门文章
- 你居然到现在都还不知道,游戏建模行业发展的这么好?
- 成本加浮动酬金合同 成本加激励费用合同
- 蓝桥杯试题 基础练习 十六进制转十进制
- 本地计算机无法启动wireless,Windows无法启动Wireless PAN DHCP Server服务的解决方法
- 华为ensp 解决40错误,完美方式(当你所有方法都试过了,不妨试试这个)
- java jxl 解析excel,java使用jxl解析Excel
- 关于嵌入式开发的资料总结
- 计算机截屏窗口快捷键,电脑截屏的快捷键是什么
- python关键字数据驱动_携程大牛谈自动化测试里的数据驱动和关键字驱动思路的理解...
- 华为Mate40国内报价 华为mate40pro价格官网报价