Chinaunix首页 | 论坛 | 博客
  • 博客访问: 360143
  • 博文数量: 100
  • 博客积分: 2500
  • 博客等级: 大尉
  • 技术积分: 1209
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-15 21:24
文章分类

全部博文(100)

文章存档

2011年(100)

分类: C/C++

2011-04-16 23:40:41

  1. #include <stdio.h>

  2. void
  3. mySwap(int *i, int *j)
  4. {
  5.     int tmp;
  6.     tmp = *i;
  7.     *i = *j;
  8.     *j = tmp;
  9. }

  10. void
  11. mySwap2(int *i, int *j)
  12. {
  13.     //有可能越界
  14.     *i = *i + *j;
  15.     *j = *i - *j;
  16.     *i = *i - *j;
  17. }

  18. void
  19. mySwap3(int *i, int *j)
  20. {
  21.     *i ^= *j;
  22.     *j ^= *i;
  23.     *i ^= *j;
  24. }

  25. int
  26. main(void)
  27. {
  28.     int i =3, j = 5;
  29.     printf("%d,%d\n", i, j);

  30.     mySwap(&i, &j);
  31.     printf("%d,%d\n", i, j);

  32.     mySwap(&i, &j);
  33.     printf("%d,%d\n", i, j);

  34.     mySwap(&i, &j);
  35.     printf("%d,%d\n", i, j);

  36.     return (0);
  37. }
Result:
  1. 3,5
  2. 5,3
  3. 3,5
  4. 5,3


阅读(685) | 评论(1) | 转发(0) |
0

上一篇:求最大值

下一篇:extern & 头文件重复引用

给主人留下些什么吧!~~

onezeroone2011-04-24 16:31:15

2:越界  3:原子操作,重叠