C 程序设计语言(第二版)第一章 读书笔记
1.8 变元——按值调用
C语言中,被调用函数不能直接更改调用函数中的变量值,它只能是更改其私有临时拷贝的值。
1 /* power : 求底的n次幂;n>=0;第二版本*/ 2 int power(int base,int n) 3 { 4 int p; 5 for(n=1;n>0;--n) 6 p=p*base; 7 return p; 8 }
其中参数n被用做临时变量,这样就不要再引入变量i。在power函数内部对n的操作不会影响到调用函数在调用power时所使用的变元值。
如欲修改调用函数在调用power时所使用的变元,则调用者将要向被调用函数提供所需要改变值变量的地址。
1.10 外部变量与作用域
外部变量可以被所有函数通过变量名访问。
外部变量可以全局访问,因此可以用其代替变元表用于在函数间的交换数据,其一直存在于程序执行期间,而不是在函数调用时产生、在函数执行完毕时消失,即使从为其赋值函数返回后仍保留原来的值不变。
在每一函数中都要对所要访问的外部变量进行说明,说明所使用外部变量的类型,在说明时可以用extern语句显示指明,也可以通过上下文隐式说明。