鱼C论坛

 找回密码
 立即注册
查看: 3613|回复: 3

运算符问题,求助

[复制链接]
发表于 2013-9-23 11:14:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 啃啃 于 2013-9-23 13:14 编辑

㈠    int  i = 5, j = 5, x,y;
        x = (i++) + (i++) + (i++);
        y = (++j) + (++j) + (++j);
输出后    i  =  8,  j  = 8,  x  =  15,  y  =  22;
  i++ + i++ + i++  是不是就等于  i + 1 + 1 + 1呢?只是其值不赋予 x ?
j 是不是也一样,但其值赋予 y ?  那 y 为什么等于22呀? 不是应该是21么?

㈡  我的逗号运算符怎么无法打印啊?   
  如:
    int  a = 2 ,  b = 4 ,  c =6 , x , y;
    y = (x = a + b),(a + c);

   输出后  x = 6 , y = 6 !   如果运算成功的话 y 应该等于 10呀!    这是为什么呀?

我是纯菜鸟,忘各位大侠别见笑!恳请各位大侠解释!谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-9-23 20:13:36 From FishC Mobile | 显示全部楼层
求解啊,望各位大神喷喷口水啊!      想一天也没答案!      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-23 23:42:46 | 显示全部楼层
被搜搜问问传送过来了,顺便注册账号回答你,,

㈠ 这个根据编译器的不同而不同如果是tc的话应该得出24的结果,java是21。目测你用的是vc,那么记住从右到左j在计算之前增加,也就是说赋值语句右边从右开始自增,即y=8+7+7。如果是有四个++j,那么便是y=9+8+7+7。这样你应该能理解了。
㈡ 赋值运算符优先级高于逗号运算符,所以等价与 (y = (x = a + b)),(a + c);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-24 01:41:53 From FishC Mobile | 显示全部楼层
焚琴断奏 发表于 2013-9-23 23:42
被搜搜问问传送过来了,顺便注册账号回答你,,

㈠ 这个根据编译器的不同而不同如果是tc的话应该得出24的 ...

是不是就等同于先运算 ++j  +  ++j  再进行下一步!   意思能理解了!感谢大神,没有你我今晚都睡不着!  小弟零基础,全靠视频和书本在自学, 希望能加大神好友以后求教!   再次真诚的感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 20:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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