C++中字符型变量与整型的算术运算

本文深入探讨了C++中字符型变量与整型变量进行算术运算的原理,解释了为何字符能与整数相加减,并通过代码示例展示了数据类型的自动转换过程。

字符型变量与整型的算术运算

最近在学习C++,经常碰到字符与整数的加减,如:char b = ‘a’+1,碰到这种比较容易蒙,b的结果是什么呢?为啥字符可以与整数相加减呢?

C++中算术运算中的精度

当几个数一起做算术运算时,如:加、减、乘、除、求模等,以其中精度高的类型为准。也就是说其中精度低的类型会先转化成精度高的类型。这样开头那个表达式中’a’+1,‘a’为字符型,1为整型,所以会先把‘a’转换成int型,也就是97,这时整个表达式的结果就是整型97+1=98。

下面的代码展示了上面表达式中类型的转换

#include <cstdio>
#include <iostream>
#include <typeinfo>
using namespace std;

int main()
{
	printf("1 type: %s", typeid(1).name());

	return 0;
}

上面代码的输出如下:
上面代码的输出

#include <cstdio>
#include <iostream>
#include <typeinfo>
using namespace std;

int main()
{
	printf("'a' + 1 type: %s", typeid('a'+1).name());

	return 0;
}

上面代码输出结果:
在这里插入图片描述
可见表达式的类型已经变为了与1相同的int型。

数据类型的自动转换

C++中有些数据类型是可以相互进行赋值的,赋值时会进行数据类型的自动转换。因此在我们最开始的表达式char b = ‘a’+1中,就会把’a’+1表达式的int型自动转换成char型再赋值给char型变量b。所以b的最终值就为字符’b’。

#include <cstdio>
#include <iostream>
#include<typeinfo>
using namespace std;

int main()
{
	char b = 'a' + 1;
	printf("'b type: %s\n", typeid(b).name());
	printf("b is %c", b);

	return 0;
}

结果为
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值