gpt4 book ai didi

c - 在 switch case 语句中使用变量

转载 作者:行者123 更新时间:2023-12-02 05:23:57 25 4
gpt4 key购买 nike

# include <stdio.h>

int main(void)
{
int var=1, x=1, y=2;
switch(var)
{
case 'x':
x++;
break;
case 'y':
y++;
break;
}
printf("%d %d",x,y);
return 0;
}

在这里我没有得到所需的输出
谁能解释一下为什么?

我的预期输出是:2,2

最佳答案

在 switch 语句中(在 C 中),你不能在 case 中使用变量.您必须使用常量。

还有,case 'x':不要引用变量 x但到一个常数 'x'谁是一个字符。你不是在测试你想要的东西...在这种情况下,你是在测试 case 121: ,其中 121 是字母“x”的 ascii 代码。

您可以使用以下方法解决您的问题:

# include <stdio.h>

#define INIT_X 1
#define INIT_Y 2
// ^^^^^^^^^^^^^

int main(void)
{
int var=1, x=INIT_X, y=INIT_Y;
// ^^^^^^^^^^^^^^^^^^
switch(var)
{
case INIT_X:
// ^^^^^^
x++;
break;
case INIT_Y:
// ^^^^^^
y++;
break;
}
printf("%d %d",x,y);
return 0;
}

关于c - 在 switch case 语句中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17580985/

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