我的程序是
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;
}
并且我得到输出CCD_ 1。我需要知道它是如何工作的,你能解释一下吗。谢谢
此处使用的是逗号运算符。在C和C++编程语言中,逗号运算符(由标记,
表示)是一种二进制运算符,它计算第一个操作数并丢弃结果,然后计算第二个操作数,并返回此值(和类型)。
因此
switch (i++, j--) {...}
相当于
i++;
switch (j--) {...}
我认为您使用开关的情况不正确。您接受两个变量作为自变量,
switch(a++ , b--)
{
case(a>b):
case(b<a):
case(a==b):
}
如果只给出一个数字和两个参数,编译器不知道该如何处理它们。
如果您使用的是基于c的语言,这是我的经验。