鱼C论坛

 找回密码
 立即注册
查看: 3832|回复: 9

怎么逗号运算的结果和小甲鱼老师说的不一样?

 关闭 [复制链接]
发表于 2011-7-30 22:45:00 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 weixu416 于 2011-8-1 10:42 编辑

代码如下,
#include <stdio.h>
void main()
{
   int a=2,b=4,c=6,x,y;
   y=(x=a+b),(b+c);
   printf("y=%d,x=%d\n",y,x);
}
运算的结果是 y=6.x=6.
在视频中,小甲鱼老师说,b+c的值赋给y,可是怎么是6呢?


我把代码修改下,
#include <stdio.h>
void main()
{
   int a=2,b=4,c=6,x,y;
   y=(a+b),(x=b+c);
   printf("y=%d,x=%d\n",y,x);
}

结果是 y=6.x=10.


在如
#include <stdio.h>
void main()
{
   int a=2,b=4,c=6,y;
   y=(a+b),(b+c);
   printf("y=%d,a+b=%d,b+c=%d\n",y,a+b,b+c);
}
  
结果是y=6 a+b=6 b+c=10.

我自己的猜想,是不是,小甲鱼把逗号运算符优先 给颠倒了?


在附上在线观看的地址:在线观看: http://www.boobooke.com/v/bbk4242
在14分钟左右,就是了,






想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-30 23:45:08 | 显示全部楼层
我也在纳闷不是说。不管前面有多少个,都看最后一个的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-31 00:12:35 | 显示全部楼层

我把代码修改了几次,可是结果都是运算前面一个的,我想应该是小甲鱼老师在讲的时候,理解错了,,

是个人的猜想阿,我也是刚刚开始学习的,,不敢去挑战小甲鱼老师,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-31 07:47:45 | 显示全部楼层
逗号运算符的优先级低于赋值运算符,小甲鱼对那块的讲解错了。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-31 08:43:27 | 显示全部楼层
他讲的没错!你这样试下!
y=( (a+b),(b+c) );

y=(a+b),(b+c)逗号运算符优先级很低!所以说左边的=号先执行y=(a+b)  然后才是逗号后面的(b+c)
所以y的值是6 整个表达式的值是10

楼主慢慢理解下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-31 14:41:05 | 显示全部楼层
zfzhuman123 发表于 2011-7-31 08:43
他讲的没错!你这样试下!
y=( (a+b),(b+c) );

你有看小甲鱼老师 在讲解的那段视频么??
他也是同样的表达式,也是说,无论多少表达式,都是赋值最后的一个,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-31 14:46:52 | 显示全部楼层
小失误,要加多一个括号,因为=的优先级比,号优先级高,后来的视频改过来了,前期的视频罪恶了……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-7-31 15:03:02 | 显示全部楼层
weixu416 发表于 2011-7-31 14:41
你有看小甲鱼老师 在讲解的那段视频么??
他也是同样的表达式,也是说,无论多少表达式,都是赋值最后的一个 ...

难道我说的不对吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-1 10:23:15 | 显示全部楼层
zfzhuman123 发表于 2011-7-31 15:03
难道我说的不对吗?

我不是这个意思,只是问题是和小甲鱼老师讲的不一样,

现在就明白了,谢谢各位,特别谢谢你..实习版主.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-1 15:33:06 | 显示全部楼层
逗号表达式必须是返回逗号以后的那个值,如a+b,b+c,最后返回的是b+c的值,但是必须有变量接收,否则就无意义了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-8 12:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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