1.c函数的所有参数均以"传值调用"的方式进行传递,这意味着函数将获得参数值的一份拷贝.这样,函数就能放心的修改这个值,而不必担心会修改实际传递给他的参数.
2.值传递获得的是参数的拷贝,不能改变参数的原始值.指针传递的是指针的拷贝,可以通过指针的间接访问到原始值而修改.
3.递归:阅读递归函数最容易的方法并不是纠缠它的执行过程,而是相信递归函数会顺利的完成它的任务.程序员需要做的是确保每个步骤正确无误,限制条件设置正确,并且每次调用之后都更接近限制条件.
递归的两个特性:1存在限制条件,当符合条件的时候递归便不再继续.2.每次递归调用以后越来越接近这个限制条件.
递归函数被调用的时候,它的变量的空间是创建于运行时的堆栈上的.以前调用的函数的变量仍然保留在堆栈上,但是被新的变量掩盖,所以不能被访问,只有当这一层递归函数退出的时候,回到上一层,以前在这一层的保存在堆栈上的变量才能重新被访问.
4.尾部递归:如果递归函数的调用是函数所执行的最后一项任务,那么就是尾部递归,一般就可以很方便的转换成一个简单的循环.