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

char a,b[10]=1;

for(i=0;i<10;i++)
{
a=a+b[i];

}
char类型相加前要都转换为int才能相加么?

不需要的。因为char类型与整型数据一样,char+char可以直接进行。二者的本质都是二进制运算,而后根据类型显示不同的结果。
楼主的问题中,运算过程就是char类型直接进行运算的。int和char都是基础类型,二者是等级别,没有char转换为int再计算一说,除非是强制类型转换。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-15
不用,不过char的表示范围比较小的, -128 到 128。很容易就溢出了,会导致错误的结果。

你这个 a还是声明为 int 类型比较合适。
第2个回答  推荐于2017-09-21
#include <stdio.h>
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类型。这是隐式转换。本回答被提问者和网友采纳
第3个回答  2012-10-15
不用,只有输出时如果你想输出另外类型才转换
第4个回答  2012-10-15
你好,不用,可以直接相加。
相似回答