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

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


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

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

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1590 分
在线时间: 408(小时)
注册时间: 2017-10-10
最后登录: 2024-04-24
查看枫落云端的 主题 / 回贴
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 点
下载积分: 1173 分
在线时间: 315(小时)
注册时间: 2013-11-20
最后登录: 2024-04-27
查看laihuaxun200的 主题 / 回贴
6楼  发表于: 2022-01-13 20:45
引用
引用楼主郁哥哥于2022-01-13 15:53发表的 两个变量的互换问题 :
为啥这样写,两个变量的值就可以互换?

这只是不用第三方变量,交换2个int变量的写法,一般是面试用,实际开发中很少人这么写,一般用第三方变量进行变量的交换。
木林森
拒绝加班内卷,从我做起!
级别: 工控侠客
精华主题: 0
发帖数量: 298 个
工控威望: 2065 点
下载积分: 1633 分
在线时间: 197(小时)
注册时间: 2020-08-16
最后登录: 2024-04-04
查看木林森的 主题 / 回贴
7楼  发表于: 2022-01-14 01:01
还有一种用位的异或交换变量的
aaabb1001
级别: 家园常客
精华主题: 0
发帖数量: 110 个
工控威望: 850 点
下载积分: 7255 分
在线时间: 137(小时)
注册时间: 2016-06-06
最后登录: 2024-04-28
查看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
发帖数量: 1255 个
工控威望: 1425 点
下载积分: 3674 分
在线时间: 322(小时)
注册时间: 2015-07-20
最后登录: 2024-02-20
查看lvpretend的 主题 / 回贴
9楼  发表于: 2022-01-15 12:34
这就是学校老师教编程时用来让学生理解程序,拓展思维的,实际上不会这么做。