static有什么用途?static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?s

题目
问答题
static有什么用途?static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下叙述中正确的是

A.局部变量说明为static存储类,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同


正确答案:A
解析:静态局部变量在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久性的存储单元。由此可知静态局部变量的生存期将一直延长到程序运行结束。而全局变量的只有一种静态存储类别,故全局变量说明为static存储类,和没有说明为static存储类其生存期都是一直延长到程序运行结束;未赋初值的auto型变量的初值是随机的,未赋初值的static型变量的初值是0。

第2题:

若程序中定义了局部变量与全局变量,则(30)。

A.在函数内只能访问局部变量,不能访问全局变量

B.局部变量与全局变量的名字不得相同

C.一个函数被多次调用时,其定义的局部变量必定分配同一个存储单元

D.函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量


正确答案:D
解析:本题考查程序语言的基本概念。在高级语言程序中,变量的作用域(引用变量的代码范围)可能是全局的或者是局部的。对于全局变量,其作用域是整个程序(或文件),因此在函数内可以访问全局变量,而局部变量的作用域为声明(定义》该变量的函数(过程,子程序)。一般语言都规定,若全局变量和局部变量的名称相同,则在局部变量的作用域范围内,引用的是局部变量(即最近嵌套原则)。程序运行过程中,每次调用一个函数时,都在栈区为该函数的运行创建活动记录(主要包括函数运行时需要的数据和控制信息),函数运行结束后则释放为其分配的活动记录。因此,函数多次运行时,其定义的局部变量不一定分配同一个存储单元。

第3题:

以下叙述中错误的是( )。

A.用Shell函数可以执行扩展名为.exe的应用程序

B.若用Static定义通用过程,则该过程中的局部变量都被默认为Static类型

C.Static类型的变量可以在标准模块的声明部分定义

D.全局变量必须在标准模块中用Public或Global声明


正确答案:C

Static类型变量的作用域是它所在的过程,通常用来存放中间结果或用作临时变量,因此,一般在过程中声明定义该类型的变量。 

第4题:

进行初始化即可自动获得初值0的变量包括( )。

A.任何用static 修饰的变量

B.任何在函数外定义的变量

C.局部变量和用static 修饰的全局变量

D.全局变量和用static 修饰的局部变量


正确答案:D

第5题:

以下叙述中正确的是

A.全局变量的作用域一定比局部变量的作用域范围大

B.静态(static)类别变量的生存期贯穿于整个程序的运行期间

C.函数的形参都属于全局变量

D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值


正确答案:B

第6题:

在Visual FoxPro中,根据变量的作用域来分,内存变量可分为( )。

A.局部变量和全局变量

B.私有变量和全局变量

C.私有变量和局部变量

D.私有变量、局部变量和全局变量


正确答案:D
解析:程序设计离不开变量,一个变量除了类型和取值之外,还有一个重要的属性就是它的作用域。变量的作用域指的是变量在什么范围内是有效或能够被访问的。在Visual FoxPro中,若以变量的作用来分,内存变量可分为全局变量、私有变量和局部变量。

第7题:

以下关于局部变量的叙述中错误的是( )。

A.在过程中用Dim语句或Static语句声明的变量是局部变量

B.局部变量的作用域是它所在的过程

C.在过程中用Static语句声明的变量是静态局部变量

D.过程执行完毕,该过程中用Dim或Static语句声明的变量即被释放


正确答案:D
解析:static用于定义静态变量,dim定义的是动态变量。静态变量的生存期是程序的整个运行时间,而动态变量的生存期是所在的过程结束,即过程结束该动态变量即被销毁。而变量的可见性是指变量在程序的那些部分可供调用,过程中定义的变量在此过程结束后销毁。故本题选D。

第8题:

以下叙述中错误的是( )。A.全局变量的作用域一定比局部变量的作用域范围大B.静态(static)类别变量的生存期贯穿于整个程序的运行期间C.全局变量的生存期是整个程序的运行期间D.静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值


正确答案:A
静态类别变量的生存期贯穿于整个程序的运行,直到程序运行结束为止,全局变量也是一样,静态局部变量的初值在编译时赋予,程序执行期间不再赋予其他值,即重复当调用函数时,函数内部的再次赋初值无效。

第9题:

以下关于局部变量和全局变量的叙述正确的是()

A.main函数中定义的变量是局部变量

B.局部变量可以与全局变量重名

C.在所有函数外定义的变量是全局变量

D.形式参数不是局部变量


正确答案:ABC

第10题:

static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?


正确答案:
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。
static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件

static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

更多相关问题