switch语句和递增运算符
我写了以下代码:
int i = 0;
switch(i++)
{
case 0:
cout << 0;
case 1:
cout << 1;
}
cout << "n" << i;
代码的输出是这样的:
01
1
任何人都可以解释第一行输出?为什么0和1都被打印?
没有找到相关结果
已邀请:
4 个回复
抽法
(后增量运算符)求值为0(即使它将
的值设置为1)。所以在
内,选择了
分支。 然后,因为在你的
之后没有
,程序继续执行
标签中的代码。 总结一下,你有:第一个
分支为0,第二个分支为1,另一个为1,因为这是
的最终值。
碉罕城爸
,这会阻止执行以下语句。例如。
不可否认,第二次休息是多余的,但我只是为了保持一致而把它放在那里
捐焦
死搭胯
评估为0但是将i增加到1.这是明确定义的行为,这里的序列点没有问题。