C/C++中NULL,'\0','0',0的区别

1. NULL
NULL即空指针,在C语言中用(void *) 0来表示,而在C++中则用0来表示。
NULL在stdio.h中的定义为:

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

2. 字符’\0’
字符’\0’表示一个字符串的结束,它的ASCII码为0。

3. 字符’0’
字符’0’它的ASCII码为48。

4. 0
0可能是许多类型,比如char,int,double等等,无论是char类型的0(二进制8位全为0)或者是int类型的0(二进制32位全为0),它们在数值上都是0。

综上所述
在数值上,NULL,’\0’,0都一样,它们都是0,而’0’在数值上则为48。在内存中,NULL,’\0’,‘0’都是一个8位的char类型,NULL 和 ‘\0’ 值一样,都是0,以数字方式读取就是0,以字符读取时就是’\0’或者null(和编译器关)。而’0’在内存存储为48,以字符读取就是’0’,以数字读取就是48。至于0,可能是char,int,float,double等类型,但是值和NULL与’\0’一样,都是0。

下面附上一些重要的ASCII码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常见ASCII码的大小规则:0-9 < A-Z < a-z。

最后附上一段代码以及运行结果

#include<cstdio>
using namespace std;
int main()
{
 	printf("%d\n",NULL);
 	printf("%c\n",NULL);
 	printf("%d\n",'\0');
 	printf("%c\n",'\0');
 	printf("%d\n",0);
 	printf("%c\n",0);
 	printf("%d\n",'0');
 	printf("%c\n",'0');
 	return 0;
}

在这里插入图片描述
参考:https://blog.csdn.net/mylinx/article/details/6873253
谢谢观看!
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值