2014-09-06 32 views
-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。我需要知道它是如何工作的,你可以解释一下。谢谢。

+1

什么ü期待? – herohuyongtao 2014-09-06 03:19:09

+0

可能重复的[逗号运算符\',\ C在做什么?](http://stackoverflow.com/questions/52550/what-does-the-comma-operator-do-in-c) – 2015-07-09 13:06:40

回答

0

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

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

如果你只给一个数字和两个参数,编译器不知道他们做什么。

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

3

您在这里使用的是comma operator。在C和C++编程语言中,逗号运算符(以令牌,表示)是一个二元运算符,它评估其第一个操作数并放弃结果,然后评估第二个操作数并返回此值(和类型)。

因此

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

相当于

i++; 
switch (j--) {...} 
相关问题