本帖最后由 曹宇 于 2013-3-25 21:18 编辑
eg:
int n=3,m=8;
在不使用第三个变量的前提下交换这俩变量的值,视频教程中有个方法是:
n=n^m; 1
m=n^m; 2
n=n^m; 3
注:1 2 3只是对表达式进行编号,无实际意义。
这样就完成交换了。可是我很不明白,。。。
在2式子中。带入1式 m=n^m --> m=(n^m)^m 既m=n; 那么这个括号中的n和 式子1 中的最左边的n 是否是同一个,
因为n为变量,当式1完成的时候 n就是9了 那么在代入式2的时候m=(n^m)^m这个n 明显是3 若不是3 那么不会起到交换的作用的。。
那么就这样式3也不用看了 一样,我就晕了。既然是变量。为什么式2中的n 还是最早的那个n。。。而不是 n=n^m;后的n 我很矛盾。,头都炸了。。。,难道是还未清空的数据缓存吗?
还请高手解答。。。头都炸了!啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!! |