不带'',表示整数2,如果带'',则是字符'2'==0x32==50(参考ascii表)
而输入2时,getchar()得到的c值是字符'2',所以,
c-'2'==0
c-2==0x30==48
如果switch(c-'2'),则c-'2'==0,
所以case 0:成立,因为其后没有break,
顺序执行case1:c+4=='6',输出6
顺序执行case2:c+4=='6',输出6,然后break结束
如果switch(c-2),则c-2==0x30==48,
所以default:成立,c+2=='4',输出4,然后break结束
c-'2',也就是减去2的ASCII,即32H=50,
c-2,也就是减去2,
加上了单引号,就表示为字符,要用ASCII表示它的值!!!
当有引号时,c-'2'的结果就是0,会执行case 0, case 1, case2语句,所以会执行了两将putchar(c+4),而c+4就是'2'+4='6',输入6,所以为66。
当没有引号时,c-2的结果就是48,会执行default语句,putchar(c+2)而c+2='2'+2='4',输出4。