Итак, я столкнулся с конкурентным вопросом (запрашивая результат) следующим образом:
#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 не сказано, что значение по умолчанию выполняется только в том случае, если ни один из случаев не совпадает?
Спасибо.
default
или нет. - person chris   schedule 30.08.2014