
C语言中字符常量可以 参加运算吗?
C语言中字符常量可以参加运算吗?例如:a='1'-2;printf("%d\n",a);return0;我这个结果能输出47,但是老师讲课时说不可以参加运算啊。请各位指点...
C语言中字符常量可以 参加运算吗?
例如: a='1'-2;
printf("%d\n",a);
return 0;
我这个结果能输出47,但是老师讲课时说不可以参加运算啊。请各位指点。。谢谢 展开
例如: a='1'-2;
printf("%d\n",a);
return 0;
我这个结果能输出47,但是老师讲课时说不可以参加运算啊。请各位指点。。谢谢 展开
4个回答
展开全部
这就要从字符型数据在内存中的存储方式来解释了。
在C语言中,实际上字符型数据在内存中是以二进制形式存放的,并不是真正的把一个字符存进内存里。在对字符型数据进行相加减运算的时候,系统会首先会将char型数据以隐形的方式转化成int型数据再进行相加减运算的。
因此,由字符型数据在内存的存储方式来看,字符型数据是可以进行数值运算的,对字符型数据做数字运算实际上就是对字符本身对应的ASSIC码进行相应的数值运算。
展开全部
首先你要明白一个概念,没有所谓的字符型变量或者常量,char就是一个整数,范围是-128--+127,而0到127这个范围内的整数有还有另外一种写法,那就是所谓的ASCII字符,比如 'A'就是65的另外一种写法而已,比如要建立一个长度为65的整型数组,那写成int a['A']也是可以的,写成int a['B'-1]也行,int a['B'-('B'-'A')]也没错,而printf函数中的%c就是输出这另外一种写法的格式,所以当int的取值范围落在0--127时,它和char的效果是一样的
展开全部
应该是不可以,对字符常量操作需要用库函数吧。
展开全部
char是特殊的整型,运算时会强制转换成int,值就是他的ascii码值
追问
如果是 a='1'-2;
printf("%c\n",a);
return 0
就不是47了,是/。。怎么回事啊?
追答
你用%c进行格式控制,相当于又进行了一次强制转换,把他变为字符型,字符/的ascii码值就是47
本回答被提问者采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询