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个回答
展开全部
首先你要明白一个概念,没有所谓的字符型变量或者常量,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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询