黑马程序员技术交流社区
标题:
C和java赋值的区别
[打印本页]
作者:
che201311
时间:
2013-11-21 23:06
标题:
C和java赋值的区别
a=b+(a=b)*0
上面这个式子在java中可以实现两数的交换(不考虑越界,且只考虑整型),但是在c语言中却不行,有高手 能讲一讲为什么吗?详细一点,谢谢。。
作者:
qw无语
时间:
2013-11-21 23:23
a=b+(a=b)*0
首先,这个写错了- -是这样的:a=b+(b=a)*0
然后java既然成功了,肯定是从左往右运行,遇到()再算()的
验证一下: a=b+(b=a)*0+b;
这个时候 a=a+b; b=a; 并不是a=2b; 所以个人觉得是从左往右运行没错,遇到()算()。
C的话,不了解,目侧是从()先计算,在计算其他的。
作者:
che201311
时间:
2013-11-21 23:55
那在C语言中呢 和java的机制呢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2