字符型char和整型int之间的关系

在C语言中并没有char类型的常量(但是在C++中却有,字符常量都是char类型),其实是用int表示char,字符型与整型相比只是更加节省内存。(在所有数据类型中,char类型占用的内存空间最少)
有符号的字符表示-128127,无符号字符表示0255。char相当于signed char还是unsigned char取决于编译器。
字符型数据在内存中是以二进制形式存放的,并不是真正的把一个字符存进内存里。在对字符型数据进行相加减运算的时候,系统会首先将char型数据以隐形的方式转化为int型数据再进行相加减运算。因此,由字符型数据在内存的存储方式来看,字符型数据在做数字运算时实际上是对字符本身对应的ASCII码进行相应的数值运算。
这种在单片机的通信中应用的最多:
在这里插入图片描述
在单片机的运算中,调试接口答应的都是char类型,但是底层会将char类型转换成int类型,最终全部按照二进制计算。

整型和字符型可以相互转换:
(char)整型变量=字符型变量
(int)字符型变量=整型变量
如下例子,输出的结果为一个为 ch 表示的字符,另一个为字符对应的 ASC II码。
char ch=‘a’;
printf("%c%d “,ch,ch);//分别输出ch的字符和对应的ASCII码。即打印出的是字符和整数。
printf(”%c%c%c",ch,ch+1,ch+2);//输出“abc”

char变量可以包含任意单个字符,所以可以给char类型的变量指定字符常量,作为其初始值。
字符常量是一个放在单引号中的字符。
char letter=‘A’;
char digit=‘9’;
也可以使用转义序列指定字符常量,如:
char newline=’\n’;
char tab=’\t’;
也可以用整数值初始化char类型的变量,只要该值在编译器许可的char类型的值域内即可,如:
char ch=74;

既然char和int本质都是整数,为什么还要作区分呢?
因为字符的个数相对较少,因而char型变量的存储单元可以比int型变量的存储单元小。其实就是提出一种char型变量专门存储字符,方便程序员的数据选择。
————————————————
版权声明:本文为CSDN博主「zhjqxy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhjqxy/article/details/52975140

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值