jeonkc 2020-04-26
字符和整数没有本质的区别。可以给 char变量一个字符,也可以给它一个整数;反过来,可以给 int变量一个整数,也可以给它一个字符。
char 变量在内存中存储的是字符对应的 ASCII 码值。如果以 %c 输出,会根据 ASCII码表转换成对应的字符,如果以 %d 输出,那么还是整数。
int 变量在内存中存储的是整数本身,如果以 %c 输出时,也会根据 ASCII码表转换成对应的字符。
也就是说,ASCII 码表将整数和字符关联起来了。
char类型占内存一个字节,signed char取值范围是-128-127,unsigned char取值范围是0-255。
如果整数大于255,那么整数还是字符吗?
描述再准确一些,在char的取值范围内(0-255),字符和整数没有本质区别。
字符肯定是整数,0-255范围内的整数是字符,大于255的整数不是字符。
示例
/* * 程序名:book68.c,此程序演示字符与整数的关系 * 作者:C语言技术网(www.freecplus.net) 日期:20190525 */ #include <stdio.h> int main() { char a = ‘E‘; char b = 70; int c = 71; int d = ‘H‘; printf("a=%c, a=%d\n", a, a); printf("b=%c, b=%d\n", b, b); printf("c=%c, c=%d\n", c, c); printf("d=%c, d=%d\n", d, d); }
运行效果
在ASCII码表中,E、F、G、H 的值分别是 69、70、71、72。
既然char的本质是整数,那C语言中为什么还需要char类型呢?
因为字符的个数不多,而char型变量占用的存储空间比int型变量小,所以用char型变量表示字符,为编程带来了方便。
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发此文,让更多的人可以看到它,谢谢!!!