不需要额外空间的交换函数的弊端

来源:互联网 发布:中国家居建材 知乎 编辑:程序博客网 时间:2024/06/05 15:41
#include<stdio.h>void exchange(int &a, int &b){    a = a + b;    b = a - b;    a = a - b;}

这个交换函数有一个缺点,如果两个参数是来自同一个地址的,那么这个地址储存的值就会变成零。比如说这个例子:

#include<stdio.h>void exchange(int &a, int &b){    a = a + b;    b = a - b;    a = a - b;}main(){    int a[] = {1};    exchange(a[0], a[0]);    printf("%d,%d",a[0]);}


这是这个例子的输出,可以看到原本是等于1的a[0]变成了0。

阅读全文
0 0
原创粉丝点击