-1

我的程序是

int main() {
    int i = 10;
    int j = 20;
    switch (i++, j--) {
        case 10:
            printf("The number is 10");
            break;
        case 20:
            printf("The number is 20");
            break;
        default:
            printf("Input Invalid");
    }
    return 0;
}

我得到了输出The number is 20。我需要知道它是如何工作的,你能解释一下。谢谢。

4

2 回答 2

3

您在这里使用逗号运算符。在 C 和 C++ 编程语言中,逗号运算符(由标记 表示,)是一个二元运算符,它计算第一个操作数并丢弃结果,然后计算第二个操作数并返回此值(和类型)。

因此

switch (i++, j--) {...}

相当于

i++;
switch (j--) {...}
于 2014-09-06T03:12:26.010 回答
0

我相信你不正确地使用了开关盒。您接受两个变量作为参数,

switch(a++ , b--)
{
   case(a>b):
   case(b<a):
   case(a==b):
}

如果你只给出一个数字和两个参数,编译器不知道如何处理它们。

如果您使用基于 ac 的语言,这是我的经验。

于 2014-09-06T02:55:57.880 回答