我在第一次C语言学习的过程中,对于C语言的认识不够深刻,我觉得这种解法已经非常厉害。毕竟能将简单的两个数的交换用计算机的逻辑编写出来,并实现正确运行......
int main()
{
int num1 = 10;
int num2 = 20;
int tmp = 0;
tmp = num1;
num1 = num2;
num2 = tmp;
return 0;
}
然而,通过这两天的学习,我发现前一种方法在实践中并不完美。这段代码在运行的过程中会创建一个临时变量,多占了一块内存空间。对内存的利用很浪费。
下面是我了解到的一种新的算法:
int main()
{
int num1 = 10;
int num2 = 20;
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
return 0;
}
这不是结束,当我接触到位操作时,这里我通过学习了解到一种更加厉害的算法。
int main()
{
int num1 = 10;
int num2 = 20;
num1 = num1^num2;
num2 = num1^num2;
num1 = num1^num2;
return 0;
}
同样是两个数值的交换,C语言通过算法的不同实现了同一种功能,很棒的一题多解。C的魅力确实不只是他能实现任意的功能那么简单。