郁哥哥
QQ:4192190
级别: 家园常客
精华主题: 0
发帖数量: 316 个
工控威望: 915 点
下载积分: 1737 分
在线时间: 150(小时)
注册时间: 2021-04-22
最后登录: 2024-10-08
查看郁哥哥的 主题 / 回贴
楼主  发表于: 2022-01-13 15:53
图片:
图片:
为啥这样写,两个变量的值就可以互换?
郁哥哥
wangnaizhi
级别: 论坛先锋
精华主题: 0
发帖数量: 1273 个
工控威望: 1449 点
下载积分: 5484 分
在线时间: 896(小时)
注册时间: 2015-08-31
最后登录: 2024-11-16
查看wangnaizhi的 主题 / 回贴
1楼  发表于: 2022-01-13 15:58
应该有专门的方法可以实现
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6769 个
工控威望: 38370 点
下载积分: 2955 分
在线时间: 9505(小时)
注册时间: 2006-09-13
最后登录: 2024-11-17
查看cvlsam的 主题 / 回贴
2楼  发表于: 2022-01-13 16:04
引用
引用楼主郁哥哥于2022-01-13 15:53发表的 两个变量的互换问题 :
为啥这样写,两个变量的值就可以互换?


这种方式仅适合数字的交换,同时可能产生数据的溢出,有点是不需要建立中间变量。

可以看看:
https://blog.csdn.net/ljx_5489464/article/details/50042571

Good Luck~
郁哥哥
QQ:4192190
级别: 家园常客
精华主题: 0
发帖数量: 316 个
工控威望: 915 点
下载积分: 1737 分
在线时间: 150(小时)
注册时间: 2021-04-22
最后登录: 2024-10-08
查看郁哥哥的 主题 / 回贴
3楼  发表于: 2022-01-13 16:05
我是在想这个为啥也可以互换? 我知道有别的方法
郁哥哥
郁哥哥
QQ:4192190
级别: 家园常客
精华主题: 0
发帖数量: 316 个
工控威望: 915 点
下载积分: 1737 分
在线时间: 150(小时)
注册时间: 2021-04-22
最后登录: 2024-10-08
查看郁哥哥的 主题 / 回贴
4楼  发表于: 2022-01-13 16:07
[quote]引用第2楼cvlsam于2022-01-13 16:04发表的  :


这种方式仅适合数字的交换,同时可能产生数据的溢出,有点是不需要建立中间变量。

可以看看:
.......
牛批
郁哥哥
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1595 分
在线时间: 410(小时)
注册时间: 2017-10-10
最后登录: 2024-11-17
查看枫落云端的 主题 / 回贴
5楼  发表于: 2022-01-13 16:40
设aa的值为a,设ss的值为b
第一行
aa==a-b

第二行
ss==(a-b)+b
所以 ss==a

第三行
aa==a-(a-b)
所以 aa=b
laihuaxun200
级别: 略有小成
精华主题: 0
发帖数量: 219 个
工控威望: 362 点
下载积分: 1168 分
在线时间: 316(小时)
注册时间: 2013-11-20
最后登录: 2024-08-19
查看laihuaxun200的 主题 / 回贴
6楼  发表于: 2022-01-13 20:45
引用
引用楼主郁哥哥于2022-01-13 15:53发表的 两个变量的互换问题 :
为啥这样写,两个变量的值就可以互换?

这只是不用第三方变量,交换2个int变量的写法,一般是面试用,实际开发中很少人这么写,一般用第三方变量进行变量的交换。
木林森
拒绝加班内卷,从我做起!
级别: 工控侠客
精华主题: 0
发帖数量: 304 个
工控威望: 2072 点
下载积分: 1883 分
在线时间: 206(小时)
注册时间: 2020-08-16
最后登录: 2024-11-13
查看木林森的 主题 / 回贴
7楼  发表于: 2022-01-14 01:01
还有一种用位的异或交换变量的
aaabb1001
级别: 论坛先锋
精华主题: 0
发帖数量: 117 个
工控威望: 1357 点
下载积分: 5639 分
在线时间: 158(小时)
注册时间: 2016-06-06
最后登录: 2024-11-15
查看aaabb1001的 主题 / 回贴
8楼  发表于: 2022-01-14 08:53
int a = 500,b=200,c;
          
            c = a;        
            a = b;
            b = c;
            Console.WriteLine(a);        
            Console.WriteLine(b);
            Console.ReadKey();
lvpretend
级别: 论坛先锋
精华主题: 0
发帖数量: 1258 个
工控威望: 1428 点
下载积分: 3680 分
在线时间: 322(小时)
注册时间: 2015-07-20
最后登录: 2024-11-16
查看lvpretend的 主题 / 回贴
9楼  发表于: 2022-01-15 12:34
这就是学校老师教编程时用来让学生理解程序,拓展思维的,实际上不会这么做。