1.当程序调用一个无法见到原型的函数时,编译器便认为该函数返回一个整型值。如果这个值实际上是非整型值时,还得执行类型转换,所以函数原型声明有时很重要。
2.值的类型并不是值的内在本质,而是取决于它被使用的方式。
3.C函数的所有参数都是“传值调用”,即函数获得参数值的一份拷贝;
传递给函数的数组参数在行为上是传址调用,因为数组名的值是一个指针,传递给函数的就是这个指针的一份拷贝。
4.C通过运行时的堆栈支持递归函数的实现。(递归函数就是直接或者间接调用自身的函数。)
当函数被调用时,它的变量的空间是创建于运行时的堆栈上的,以前调用的函数的变量仍旧保留在堆栈上,但它们被新的函数的变量所“掩盖”,因此是不能被访问的。
5.递归调用的效果类似于循环,但是,递归调用将会保存一些信息,也就是保存在堆栈中的变量值。(所以有时得考虑程序运行时的开销!!以及冗余计算)