我有以下代码:
"
int i = 1;
int j = 0;
switch (i++)
{
case 1: j += i;
case 2: j += i;
case 3: j += i;
break;
}
printf("%d %d",i, j);
"
i++
表达式是后增运算符,将 i
的值评估为1,因此将执行 case 1 中的语句,这意味着 j
的值将被评估为2。然后程序继续执行所有后续语句而没有中断。由于 i
的值没有改变,j
的值也不会改变。因此,我期望输出结果类似于 2 2
,但实际结果是 2 6
。请问有人能给我一个解释吗?谢谢!