c语言中“switch(c-'2')和switch (c-2)有什么区别?

有个C语言的问题,switch语句中switch(c-'2')和switch(c-2),c为输入的数,这两个有什么区别?测试的答案不同。。。#include<stdio.... 有个C语言的问题,switch语句中switch(c-'2')和switch(c-2),c为输入的数,这两个有什么区别?测试的答案不同。。。
#include <stdio.h>
main()
{
int c;
while((c=getchar())!='\n')
{
switch(c-'2')
{
case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default:putchar(c+2);break;
}
}
}
如果用switch(c-'2'),‘输入数字2473时答案为668977,如果用switch(c-2)答案为4695..
请高手给予分析为盼,谢谢。
展开
 我来答
四舍五不入6
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2万
展开全部

c - '2' == c - 50,与c - 2差别是明显的。

对于c - '2'来说,这里的c通常是char类型,其值可能是'2','3',......‘8’,‘9’,那么c - '2'就是一个差值,这个值代表c与'2'的距离。

对于c - 2来说,这里的c可能是一个int类型,实际效果就是求两个整数的差。

扩展资料:

int型和char型变量相互赋值

整型和字符型是互通的,他们是在内存中存储的本质是相同的,只是存储的范围不同而已,整型可以是2字节,4字节,8字节,而字符型只占1字节。

Int:

标准函数INT(X)其基本功能是得到一个不大于X的最大整数,如INT(3.59)=3,INT(-2.01)=-3。INT函数是一个用途很广的函数,在教学中能有目的的分列其使用技巧。

参考资料来源:百度百科-char (计算机语言关键字)

参考资料来源:百度百科-INT

xoaxa
推荐于2017-09-01 · TA获得超过8607个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3405万
展开全部
c - '2' == c - 50,与c - 2差别是明显的。
对于c - '2'来说,这里的c通常是char类型,其值可能是'2','3',......‘8’,‘9’,那么c - '2'就是一个差值,这个值代表c与'2'的距离。
对于c - 2来说,这里的c可能是一个int类型,实际效果就是求两个整数的差。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
搬砖科学家
推荐于2017-09-23 · TA获得超过120个赞
知道答主
回答量:5
采纳率:0%
帮助的人:3.5万
展开全部
你用的getchar,输入的数字就是字符
2473,
当输入2的时候 '2'-'2'=0 则输出case 1和case 2后面的东西, 6 6
当输入4的时候 '4'-'2'=2 则输出case 2的东西 ,8
当输入7的时候 输出default的东西 9
当输入3的时候输出case 1和case2的东西 77
懂没?
追问
哦,感谢及时回复。
因为我用的是getchar,输入的数字就是字符

当输入2的时候:
c-'2'= '2'-'2'=50-50=0……
c-2='2'-2=50-2=48
我理解的对吗?
追答
对,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-02-12
展开全部
c-'2',意思是 c 减去字符2的ascii码
c-2,意思是 c 减去 数字 2

明白?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2013-02-12 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6384万
展开全部
c-2就是c-2,而c-'2'是c-0x32或c-50。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式