字符0和整数0有区别么???求高手 求详解

如题所述

1、类型符号不同:

字符‘0’用字符变量存储,需要使用类型符号 char 来表示,而整数0用整型变量来存储时,使用 int 类型符号来申明。

2、存储单元不同:

字符“0”在内存单元中占用 1 个字节即8位来表示,而整型变量存储 0 在16位字长的机器上,基本整型的长度也为16位,即用 2 个字节来源存储。

3、内部存储数值不同:

char用于C或C++中定义字符型变量,只占一个字节,取值范围为 -128 ~ +127(-2^7~2^7-1),字符“0”对应的ASCII 码为 0011 0000即 48。而,整型 0 的内部存储的值为 0x0000。

扩展资料:

字符的相关作用:

针对微软公共语言运行库的应用程序使用编码将字符表示形式从本机字符方案映射至其他方案。应用程序使用解码将字符从非本机方案映射至本机方案。电脑和通讯设备会使用字符编码的方式来表达字符。意思是会将一个字符指定给某个东西。

传统上,是代表整数量的位元序列,则可透过网络来传输,同时亦便于储存。常用的例子是ASCII和用于统一码的UTF-8。根据谷歌的统计,UTF-8是目前最常用于网页的编码方式。相较于大部分的字符编码把字符对应到数字或位元串,摩斯密码则是使用不定长度的电子脉冲的序列来表现字符。

参考资料来源:百度百科-整型

参考资料来源:百度百科-char

参考资料来源:百度百科-字符

参考资料来源:百度百科-ASCII

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
有区别, 字符0的ASCII码实际上是48,C语言中字符0 只占一个字节(Byte),也就是内存中存放的是 01001000 (其中每一个0或1表示一个bit位)
而整数0, 它在内存中的表示全是0,C语言中一个整数的占4个字节,整数0在内存中的表示为: 00000000 00000000 00000000 00000000 .

如下:
char c = '0'; //字符0
int a = 0; //整数0
printf("%c, %d\n", c, a); //0,0
printf("%d\n", c); //48 用整数形式答应字符,实际是打印c在内存中的值。
printf("%d\n", (c+a)); //48
printf("%c\n", (char)(c+a)); //0
输出的结果:
0,0
48
48
0
从上面你就能看出字符0和整数0的区别了。本回答被提问者采纳
相似回答