C语言字符型char和整型int的关系和示例

jeonkc 2020-04-26

1、字符就是整数

字符和整数没有本质的区别。可以给 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);
}

运行效果
C语言字符型char和整型int的关系和示例

在ASCII码表中,E、F、G、H 的值分别是 69、70、71、72。

2、为什么C语言需要字符类型

既然char的本质是整数,那C语言中为什么还需要char类型呢?

因为字符的个数不多,而char型变量占用的存储空间比int型变量小,所以用char型变量表示字符,为编程带来了方便。

3、版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net

作者:码农有道

如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发此文,让更多的人可以看到它,谢谢!!!

相关推荐

NewActivity / 0评论 2020-05-08