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

问题描述:

c语言中“switch(c-'2')和switch (c-2)有什么区别?
有个C语言的问题,switch语句中switch(c-'2')和switch(c-2),c为输入的数,这两个有什么区别?测试的答案不同.
#include
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..
请高手给予分析为盼,
1个回答 分类:综合 2014-11-23

问题解答:

我来补答
你用的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 我理解的对吗?
再答: 对,
 
 
展开全文阅读
剩余:2000