我有以下代码:
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
。谁能给我一个解释,谢谢!