如何不使用第三个变量,交换两个char的值 财富值73

2016-10-18 17:24发布

5540 10 6

对于int a 和 int b
可以使用下面的代码 互换a和b的值

void function(inta, int b){         a=a+b;         b=a-b;         a=a-b;     }

如果交换 两个char类型,该怎么办喃?

自定义标题
段落格式
字体
字号
代码语言
10条回答
817761l - 这个人很懒,什么都没留下
1楼 · 2016-10-18 17:33.采纳回答

char型实际上是byte型,只有一个字节,因此必须考虑溢出的问题,不能用加法。
当然,实质上int型也不能用加减法这样来交换,用位异或是个通用的办法。

77人赞 添加讨论(1) 举报

char其实就是int

79人赞 添加讨论(0)举报

其实对于2整型(包括char),用异或交换变量比用加减好(不存在溢出问题)

76人赞 添加讨论(0)举报

标记一下 还是等大神来解答吧

74人赞 添加讨论(0)举报

如果你在windows平台下的话,可以使用内置函数

71人赞 添加讨论(0)举报

char 本质也是整型

67人赞 添加讨论(0)举报

你可以使用汇编来直接自行完成

56人赞 添加讨论(0)举报

记得 是用位运算 具体忘记

55人赞 添加讨论(0)举报

需要类型转换
所以在对char类型的数据进行转换的时候
必须要引用一个中间的int类型第三个变量
所以你问的问题自相矛盾。不能实现。

47人赞 添加讨论(0)举报

输出

40人赞 添加讨论(0)举报

一周热门 更多>