我在第一次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的魅力确实不只是他能实现任意的功能那么简单。