两个char相加 要先转换为int么?

2024-12-29 01:59:55
推荐回答(5个)
回答1:

不需要的。因为char类型与整型数据一样,char+char可以直接进行。二者的本质都是二进制运算,而后根据类型显示不同的结果。
楼主的问题中,运算过程就是char类型直接进行运算的。int和char都是基础类型,二者是等级别,没有char转换为int再计算一说,除非是强制类型转换。

回答2:

不用,不过char的表示范围比较小的, -128 到 128。很容易就溢出了,会导致错误的结果。

你这个 a还是声明为 int 类型比较合适。

回答3:

#include
int main()
{
char a='0',b[10]={'1'}; //'0'==48,'1'==49
int i;
for(i=0;i<10;i++)
{
a=a+b[i];
}
printf("%d\n",a);
printf("%c\n",a);
return 0;
}
测试结果:
97
a // a 的ASCII码为97

C语言有类型转换机制,在执行运算时,小于int的类型将会提升。换句话说,(这里)两个char类型相加,会自动转换成int类型运算,得到结果后再转换为char类型。这是隐式转换。

回答4:

不用,只有输出时如果你想输出另外类型才转换

回答5:

你好,不用,可以直接相加。