niusouti.com

问答题static有什么用途?static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?

题目
问答题
static有什么用途?static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?

相似考题
参考答案和解析
正确答案: 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错 误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和 定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。
解析: 暂无解析
更多“static有什么用途?static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?s”相关问题
  • 第1题:

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

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

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

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

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


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

  • 第2题:

    以下叙述中正确的是

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

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

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

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


    正确答案:B

  • 第3题:

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

    A.任何用static 修饰的变量

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

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

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


    正确答案:D

  • 第4题:

    若程序中定义了局部变量与全局变量,则(11)。A.在函数内只能访问局部变量,而不能访问全局变量SX

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

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

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

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

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


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

  • 第5题:

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

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

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

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

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

    A.

    B.

    C.

    D.


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

  • 第6题:

    下面关于变量说法正确的是()

    • A、变量声明包括基本数据类型和用户定义类型。
    • B、全局变量是用Public声明的变量,局部变量是用Dim或Static等声明的变量
    • C、全局变量和局部变量不能同名
    • D、任何窗体和模块对全局变量的修改都会影响其他窗体或模块

    正确答案:A,B,D

  • 第7题:

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


    正确答案:正确

  • 第8题:

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


    正确答案: 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
    2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
    3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
    全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错 误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和 定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。

  • 第9题:

    SQL server中的变量分为两种,全局变量和局部变量。其中全局变量的名称以()字符开始,有系统定义和维护。局部变量以()字符开始,由用户自己定义和赋值。


    正确答案:@@;@

  • 第10题:

    填空题
    SQL server中的变量分为两种,全局变量和局部变量。其中全局变量的名称以()字符开始,有系统定义和维护。局部变量以()字符开始,由用户自己定义和赋值。

    正确答案: @@,@
    解析: 暂无解析

  • 第11题:

    单选题
    以下叙述中正确的是(  )。
    A

    只要是用户定义的标识符,都有一个有效的作用域

    B

    只有全局变量才有自己的作用域,函数中的局部变量没有作用域

    C

    只有在函数内部定义的变量才是局部变量

    D

    局部变量不能被说明为static


    正确答案: A
    解析:
    A项正确,标识符的“作用域”是指在程序中的某一部分中,标识符是有定义的,可以被C编译和连接程序所识别。在C语言中,由用户命名的标识符都有一个有效的作用域。B项错误,局部变量的作用域是所在的函数体(或复合语句);C项错误,在函数内部或复合语句内部定义的变量,称为局部变量;D项错误,在函数体(或复合语句)内部用static来说明一个变量时,变量为静态局部变量。答案选择A选项。

  • 第12题:

    多选题
    下面关于变量说法正确的是()
    A

    变量声明包括基本数据类型和用户定义类型。

    B

    全局变量是用Public声明的变量,局部变量是用Dim或Static等声明的变量

    C

    全局变量和局部变量不能同名

    D

    任何窗体和模块对全局变量的修改都会影响其他窗体或模块


    正确答案: D,C
    解析: 暂无解析

  • 第13题:

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

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

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

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

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


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

  • 第14题:

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

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

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

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

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


    正确答案:ABC

  • 第15题:

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


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

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

  • 第16题:

    全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?


    正确答案:
     

  • 第17题:

    在LabView中,()主要用于程序内部传递数据,()主要用于程序之间传递数据。

    • A、局部变量、全局变量
    • B、局部变量、局部变量
    • C、全局变量、局部变量

    正确答案:A

  • 第18题:

    在PowerScript语言中,从程序质量角度看应按()优先顺序定义变量。

    • A、局部变量、实例变量、共享变量、全局变量
    • B、局部变量、共享变量、实例变量、全局变量
    • C、共享变量、局部变量、实例变量、全局变量
    • D、局部变量、实例变量、全局变量、共享变量

    正确答案:A

  • 第19题:

    全局变量和局部变量在内存中是否有区别?如果有,是什么区别?


    正确答案: 全局变量储存在静态数据库,局部变量在堆栈。

  • 第20题:

    以下叙述中正确的是()

    • A、局部变量说明为static存储类,其生存期将得到延长
    • B、全局变量说明为static存储类,其作用域将被扩大 
    • C、任何存储类的变量在未赋初值时,其值都是不确定的 
    • D、形参可以使用的存储类说明符与局部变量完全相同

    正确答案:A

  • 第21题:

    在过程中用Dim和Static定义的变量都是局部变量


    正确答案:正确

  • 第22题:

    单选题
    在PowerScript语言中,从程序质量角度看应按()优先顺序定义变量。
    A

    局部变量、实例变量、共享变量、全局变量

    B

    局部变量、共享变量、实例变量、全局变量

    C

    共享变量、局部变量、实例变量、全局变量

    D

    局部变量、实例变量、全局变量、共享变量


    正确答案: C
    解析: 暂无解析

  • 第23题:

    问答题
    全局变量和局部变量可否同名,他们是否有区别?如果有,是什么区别?

    正确答案: 可以同名,从生命周期来说全局变量存活于整个程序运行周期,而局部变量只存在所在函数的运行周期,当函数返回后,局部变量也消失,全局变量储存在静态数据库,局部变量在堆栈。
    解析: 暂无解析