我有以下代码:
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);
Run Code Online (Sandbox Code Playgroud)
所述i++表达式的计算结果i为1,因为它是一个递增运算符,因此在壳体1的语句将被执行,这意味着j被评估为2.然后没有中断,则程序继续执行下面的所有语句.由于值i不变,因此值也j不变.所以我希望输出是类似的2 2但事实证明是2 6.请任何人给我一个解释,谢谢!
| 归档时间: |
|
| 查看次数: |
2544 次 |
| 最近记录: |