第1个回答 2009-09-09
static变量最大的作用范围是一个文件,也就是你所说的可防其他文件调用,而你说的局部变量,无论是不是static ,都是只在他的作用域里有效,即模块内有效,虽然他的生存周期是从程序的开始到结束,但其他地方是访问不到的,而全局static变量,整个文件内部所有的代码都是可以访问的到的。定义局部或全局变量就是这一点不同而已。
如果有明白的请补充说明!
第2个回答 2019-12-21
大括号可以将代码分段去处理,第一个
{static
int
a=2;}大括号将a做为这个区域的一个局域变量,超出这个区域的a是无效的,故 printf("%d\n",a)的a变量是全局变量;
{static
int
a=2;
printf("%d\n",a);}这个括号将printf("%d\n",a)包含进去,所以打印的是该区域的变量a=2,
最后一个在同个代码块中是不允许定义相同的变量的,故出错~
第3个回答 2019-02-11
两种,全局变量和静态类型变量
,static,即在程序运行的过程中静态变量始终是占用一个存储空间。
静态变量只能在他的作用范围内使用,使用局部静态变量是为了在下次调用该函数时,能使用上次调用后得到的该变量的值。
(1)定义格式:
static
数据类型
内部变量表;
(2)存储特点
1)静态内部变量属于静态存储。在程序执行过程中,即使所在函数调用结束也不释放。换句话说,在程序执行期间,静态内部变量始终存在,但
其它函数是不能引用它们的。
2)定义但不初始化,则自动赋以"0"(整型和实型)或'\0'(字符型);且每次调用它们所在的函数时,不再重新赋初值,只是保留上次调用
结束时的值!
(3)何时使用静态内部变量
1)需要保留函数上一次调用结束时的值。
2)变量只被引用而不改变其值。
第4个回答 2019-09-09
选
A
声明为static将把变量存储在静态存储区(全局变量也存储在静态存储区)
B)
全局变量说明为static存储类,其作用域将被缩小到所在的文件
C)
静态变量,全局变量,还有整型数组在未赋初值时期初值为0
D)
二者还是有差别的