所以我遇到了一个竞争性问题(询问输出)如下:
#include <stdio.h>
int main()
{
int i = 0;
for(i = 0; i < 20; i++)
{
switch(i)
{
case 0: i+=5;
case 1: i+=2;
case 5: i+=5;
default: i+= 4;
break;
}
printf("%d ", i);
}
return 0;
}
输出是16, 21
。虽然我知道开关盒是如何工作的,但我无法解释自己这是如何工作的。为什么要添加默认值?K&R C 书不是说只有在没有匹配的情况下才会执行默认设置吗?
谢谢。