auto int y;
y=x++;
if(y==5)
{
int x=2;
printf("x=%d\n",x);
}
printf("x=%d\n",x);
return 0;
}
7.3 static 存储类型的变量与作用范围
静态变量可分为内部静态变量和外部静态变量。
格式:static
数据类型 变量名(=初始化常数表达式);
内部静态变量是指定义在函数内,只在本函数内有效。外部静态变量是指定义在
函数外,限定在本文件内有效。
在整个程序运行期间,静态变量在内存的静态存储区中占据着永久性的存储单元。
即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,
从而可以继续使用存储单元中原来的值。
对未赋初值的静态局部变量,C 编译程序自动给它赋初值 0。
例 7.3 应用内部静态变量的例子。
编辑源程序代码7-3.c
#include<stdio.h>
int kk( )
{
int x = 4 ;
static int y = 5 ;
x*= 2 ;
y*= 2;
return (x+y);
}
int main( )
{
int j , s = 0 ;
for ( j = 0 ; j < 2 ; j ++ )
s = kk( );
printf( " s = %d\n" ,s );
return 0;
}