gpt4 book ai didi

c++ - switch 语句和递增运算符

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:25:28 24 4
gpt4 key购买 nike

我写了下面的代码:

int i = 0;  
switch(i++)
{
case 0:
cout << 0;
case 1:
cout << 1;
}
cout << "\n" << i;

代码的输出是这样的:

01  
1

谁能解释一下输出的第一行?为什么 0 和 1 都被打印出来了?

最佳答案

首先,表达式 i++ (后递增运算符)的计算结果为 0(即使它将 i 的值设置为 1)。所以里面 switch , case 0:分支被选中。

那么,因为没有break在你的 case 0: 之后,程序继续执行 case 1: 中的代码标签。

总而言之,您有:第一个 switch 中的 0 个分支,1 来自第二个分支,另外 1 因为那是 i 的最终值.

关于c++ - switch 语句和递增运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5230754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com