j
0
s
18
main
函数
kk 函数
y
10
j
0
s
0
main 函数
kk 函数
y
5
x
4
j
1
s
18
main 函数
kk
函数
y
20
x
8
图 7.1 内部静态变量
7.4 register 存储类型的变量与作用范围
寄存器变量的特点:
register 变量具有局部寿命,与 auto 相同。
只用于自动型变量及函数的形式参数说明,不适用于外部变量和静态变量。
寄存器变量不能用&运算符取其地址。
寄存器变量也是自动类变量。它与 auto 变量的区别仅在于:用 register 说明的变量,
可以把那些频繁引用的变量声明为 register 变量,有助于提高程序的运行速度。
例 7.5 阅读下列程序,register 变量应用举例。
编辑源程序代码7-5.c
#include<stdio.h>
int power(int x, register int u)
{
register int n , p ;
for(p=1,n=1;n<=u;n++)
p= p*x ;
return p ;
}
int main( )
{
int s;
s=power(5,3);
printf("s=%d\n",s);
}
7.5 extern 存储类型的变量与作用范围
外部变量是在函数外部任意位置上定义的变量。定义时,在变量的类型前不能用
(a)执行语句 static int y = 5;
时参数情况
(b)首次函数调用结束返回
main 时参数情况
( c ) 第 二 次 执 行 语 句 return
(x+y);
时参数情况
main 时参数情况