Wonderland of C++
不要做一个浮躁的人
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
13 随笔 :: 1 文章 :: 0 评论 :: 0 Trackbacks
<
2008年10月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
公告
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
2008年11月 (1)
2008年10月 (4)
2008年8月 (4)
2008年7月 (1)
2008年6月 (3)
文章档案
2008年10月 (1)
Good Site
One Pythoner's Site
游戏开发社区
醉晚亭
友情链接
My Java Blog-Workspace
(rss)
搜索
最新评论
阅读排行榜
1. [导入]Vector当做引用在在函数中传递(1841)
2. 正则表达式提取文本中的IP信息(1279)
3. [导入]java.lang.NoClassDefFoundError与classpath设置(677)
4. [导入]用vector打印九九乘法表(531)
5. 异或节省中间变量的两个例子(391)
评论排行榜
1. [导入]Vector当做引用在在函数中传递(0)
2. [导入]用vector打印九九乘法表(0)
3. [导入]python代码出错(0)
4. [导入]一道关于堆栈的面试题C++(0)
5. [导入]数组归并排序(0)
异或节省中间变量的两个例子
用 异或^ 运算可以很轻松的代替中间变量来做很多事情,比如互换两个变量的值,实现字符串的反转。
//
字符串反转
void
reverse_str(
char
*
ch)
{
int
len;
int
i;
len
=
strlen(ch)
-
1
;
char
ctemp;
for
(i
=
0
; i
<
len
-
i; i
++
)
{
ch[i]
=
ch[i]
^
ch[len
-
i];
ch[len
-
i]
=
ch[i]
^
ch[len
-
i];
ch[i]
=
ch[i]
^
ch[len
-
i];
}
ch[len
+
1
]
=
0
;
}
测试
char c[] = "abcdefg";
reverse_str(c);
cout<<c<<endl;
//
交互变量
void
swap(
int
&
a,
int
&
b)
{
//
a = a + b;
//
b = a - b;
//
a = a - b;
a
=
a
^
b;
b
=
b
^
a;
a
=
a
^
b;
}
posted on 2008-10-31 15:32
Robert.Su
阅读(391)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © Robert.Su