一个小问题,编译器是怎样执行这些表达式的? 假设x=2,y=31. x=(y=x)*0+y;2. x=x%3+4*2+x++; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. 1)先执行(y=x) 2)x=(结果) 3)进行运算(先乘除后加减)2. 1)先负值x=x,和x++ 2)x=x结果和3求余 3)进行运算(先乘除后加减)参考:http://lshy168.qupan.com x和y的内存分配情况是怎样的呢?对第一个表达式,x=(y=x)*0+y;对蓝色的y,会不会因为(y=x),它的值会改变,如果不变,这是为什么? 其实这个问题挺简单利用eclipse的debug的单步执行,你可以看到每步变量的值的变化 2楼不对吧,一. x=(y=x)*0+y; 1. y=x // x=2, y=22. y*0+y // = 2, y不变3. x=2的结果 // x=2, y=2二.x=x%3+4*2+x++;1. (x%3)+(4*2)+x // 2%3+4*2+2=2+8+2=122. x++ // x=33. x=1的结果 // x=12 大家介绍个数据结构的书给我好吗(java版) 如何传出该数组 十万火急的问题! Java记时器问题 请问高手一个方法,得到文件夹(dictionary)里的每一个文件(file) 如何用JAVA 实现定时触发 请教关于clone 郁闷一天了,请高手指点`` applet中如何把网上的图片保存到本地? 在 Win98 机子上输入 \\192.168.1.2\C$ 为什么不能访问 提问专家 一段把指定文件显示在dos窗口中,并且写入到指定文件中的代码
1)先执行(y=x)
2)x=(结果)
3)进行运算(先乘除后加减)
2.
1)先负值x=x,和x++
2)x=x结果和3求余
3)进行运算(先乘除后加减)
参考:http://lshy168.qupan.com
利用eclipse的debug的单步执行,你可以看到每步变量的值的变化
一. x=(y=x)*0+y;
1. y=x // x=2, y=2
2. y*0+y // = 2, y不变
3. x=2的结果 // x=2, y=2
二.x=x%3+4*2+x++;
1. (x%3)+(4*2)+x // 2%3+4*2+2=2+8+2=12
2. x++ // x=3
3. x=1的结果 // x=12