鱼C论坛

 找回密码
 立即注册
查看: 2701|回复: 5

c的表达式运算问题

[复制链接]
发表于 2012-8-4 23:01:46 | 显示全部楼层 |阅读模式
5鱼币
若a定义语句:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是16,求得出答案的详细过程!!

最佳答案

查看完整内容

分解成三个式子,看运算符的计算顺序,搞清优先级,第一个式子,m*=y可以写成m=m*y,m被赋值为10,第二个式子y-=m,此时m的值为10,式子化简y=y-m,得出y=-8,第三个式子y+=y,化简成y=y+y,此时Y的值为-8,y被再次赋值为-16,我在vs2008上运行,等-16.楼主你的答案对吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-4 23:01:47 | 显示全部楼层
分解成三个式子,看运算符的计算顺序,搞清优先级,第一个式子,m*=y可以写成m=m*y,m被赋值为10,第二个式子y-=m,此时m的值为10,式子化简y=y-m,得出y=-8,第三个式子y+=y,化简成y=y+y,此时Y的值为-8,y被再次赋值为-16,我在vs2008上运行,等-16.楼主你的答案对吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-4 23:29:26 | 显示全部楼层
本帖最后由 changvh 于 2012-8-4 23:30 编辑

m*=y得出m=10y-=m得出y=8
y+=y得出y=16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-5 00:57:48 | 显示全部楼层
  1. #include<stdio.h>

  2. int main()
  3. {
  4.         int m=5,y=2;
  5.         y+=y-=m*=y;                //可以写成这样 y+=(y-=(m*=y))   优先级其实就是按照这样执行的
  6.         printf("y=%d\n",y);
  7.         return 0;
  8. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-5 15:33:02 | 显示全部楼层
我没自己动手  其实是没有发言权的  但是我同意4楼的看法  不过对与错的没什么用的   因为研究这个并不能提高你的编程能力   望采纳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2012-8-5 17:01:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 08:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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