考虑两个代码。尽管已将相同的值分配给 i ,但为什么它们给出不同的输出,“i”在两个代码中都是一个字符。
第一个代码--> (这里直接将值赋给i)
void main()
{
char i=3;
clrscr();
switch(i)
{
default : printf("\nHi..\n");
break;
case 1:printf("\na");
break;
case 2:printf("\nb\n");
break;
case 3:printf("\nc");
break;
}
}
第二次使用 printf-scanf--->
void main()
{
char i;
printf("ENTER i");
scanf("%c",&i);
clrscr();
switch(i)
{
default : printf("\nHi..\n");
break;
case 1:printf("\n\na");
break;
case 2:printf("\nb\n");
break;
case 3:printf("\nc");
break;
}
}
在第二个代码中,当我给出 3 作为输入时,我得到“Hi..”作为输出。是什么使这两个代码的工作方式不同..??
最佳答案
在您使用的第一个中
char i = 3
但是当你使用 scanf 时,你实际上使用的是:
char i = '3'
这两个包含不同的值
请参阅以下 ASCII http://www.asciitable.com/
关于c - Switch Case 的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17685519/