鱼C论坛

 找回密码
 立即注册
查看: 1506|回复: 2

[已解决]请教一个关于switch函数有关的问题

[复制链接]
发表于 2018-1-17 13:58:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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

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

这种分开的写法,运行了一下感觉没什么区别。
又上网查了一下,好像习惯上大家都是用第一种写法。想请教一下这两种的不同点是什么呢?
最佳答案
2018-1-17 14:25:04
没有区别,switch里面可以是一个表达式的值
这里用逗号隔开得到的是一个逗号表达式,取最后那个表达式的值作为最终的值
所以和下面的写法等效
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-17 14:25:04 | 显示全部楼层    本楼为最佳答案   
没有区别,switch里面可以是一个表达式的值
这里用逗号隔开得到的是一个逗号表达式,取最后那个表达式的值作为最终的值
所以和下面的写法等效
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

多谢。逗号表达式都忘了,我也是醉醉哒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-29 05:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表