进击的小FF 发表于 2018-1-17 13:58:04

请教一个关于switch函数有关的问题

在拜读各位大大的程序时,发现如下语句

switch(scanf("%d", &choose_number), choose_number)
                {
                   case1:
                   ......................

switch后面的参数不是应该只有一个choose_number吗?不是很理解将接受输入的函数scanf放到里面的原因。
然后尝试了

scanf("%d", &choose_number);
switch(choose_number)
                {
                   case1:
                   ......................

这种分开的写法,运行了一下感觉没什么区别。
又上网查了一下,好像习惯上大家都是用第一种写法。想请教一下这两种的不同点是什么呢?

BngThea 发表于 2018-1-17 14:25:04

没有区别,switch里面可以是一个表达式的值
这里用逗号隔开得到的是一个逗号表达式,取最后那个表达式的值作为最终的值
所以和下面的写法等效

进击的小FF 发表于 2018-1-17 14:40:16

BngThea 发表于 2018-1-17 14:25
没有区别,switch里面可以是一个表达式的值
这里用逗号隔开得到的是一个逗号表达式,取最后那个表达式的值 ...

多谢。逗号表达式都忘了,我也是醉醉哒{:9_238:}
页: [1]
查看完整版本: 请教一个关于switch函数有关的问题