关于C语言交换两个int类型变量的讨论

来源:互联网 发布:厄舍府的倒塌 知乎 编辑:程序博客网 时间:2024/05/16 18:35

C语言中交换两个int类型变量有以下几种方法:

1、使用第三方变量

int main()

{

int a = 10;

int b = 20;

int temp;

temp = a;

a = b;

b = temp;

}

2、不使用第三方变量(使用加减法)

int main()

{

int a = 10;

int b = 20;

a = a - b;

b = b - a;

a = b + a;

}

3、不使用第三方变量(使用^运算符)

int mian()

{

int a = 10;

int b = 20;

a = a ^ b;

b = a ^ b;

a = a ^ b;

}


1、就可读性而言,第一种方式是最佳的选择,第二种和第三种可读性不佳;

2、就执行效率而言,第二种和第三种相对第一种方式更高;

3、第二种方式有缺陷,原因是int类型变量是有范围的,如果a是一个很大的正整数在int类型范围内,b是一个非常小的负整数也再int类型范围内,但a - b的值很有可能溢出,这样结果就会是错误的。

所以综合上述,选择第一种方法为最佳。

0 0
原创粉丝点击