首页 > 试题广场 >

说一说静态变量,全局变量,局部变量的特点

[问答题]

说一说静态变量,全局变量,局部变量的特点

推荐

得分点

位置、作用域、内存位置、生命周期

参考答案

标准回答

从所在位置、作用域、内存位置、生命周期来说一说静态变量、全局变量、局部变量的特点:

  1. 位置

    局部变量:在函数中或者方法中,函数的参数,局部代码块中。

    全局变量:在文件中,函数外。

    静态变量:使用 static 修饰,可以是局部、全局或者修饰类成员。

  2. 作用域

    局部变量:作用域为局部,也就是函数或方法中,出了作用域就不能访问,同一作用域不能有同名的变量,如果全局变量和局部变量同名,则访问时采用"就近原则"。

    全局变量:作用域为全局,在本文件或者其它文件中都可以访问,在其它文件中访问可以通过 extern 进行声明,表示使用外部的全部变量。

    静态变量:静态局部变量作用域为局部,静态全局变量作用域为所在文件中,其它文件中访问不了。

  3. 内存位置

    局部变量:存储在栈内存中。

    全局变量:存储在静态存储区中,如果未初始化或者初始化为0,在BSS段,初始化了在DATA段。

    静态变量:存储在静态存储区中,如果未初始化或者初始化为0,在BSS段,初始化了在DATA段。

  4. 生命周期

    局部变量:出了作用域销毁。

    全局变量:程序结束销毁。

    静态变量:程序结束销毁。

编辑于 2021-09-15 11:10:27 回复(0)
链接:https://acm.nowcoder.com/questionTerminal/f33242ae3f1f4dbe85573915ac974de2?orderByHotValue=1&page=1&onlyReference=false
来源:牛客网

从所在位置、作用域、内存位置、生命周期来说一说静态变量、全局变量、局部变量的特点:

  1. 位置

    局部变量:在函数中或者方法中,函数的参数,局部代码块中。

    全局变量:在文件中,函数外。

    静态变量:使用 static 修饰,可以是局部、全局或者修饰类成员。

  2. 作用域

    局部变量:作用域为局部,也就是函数或方法中,出了作用域就不能访问,同一作用域不能有同名的变量,如果全局变量和局部变量同名,则访问时采用"就近原则"。

    全局变量:作用域为全局,在本文件或者其它文件中都可以访问,在其它文件中访问可以通过 extern 进行声明,表示使用外部的全部变量。

    静态变量:静态局部变量作用域为局部,静态全局变量作用域为所在文件中,其它文件中访问不了。

  3. 内存位置

    局部变量:存储在栈内存中。

    全局变量:存储在静态存储区中,如果未初始化或者初始化为0,在BSS段,初始化了在DATA段。

    静态变量:存储在静态存储区中,如果未初始化或者初始化为0,在BSS段,初始化了在DATA段。

  4. 生命周期

    局部变量:出了作用域销毁。

    全局变量:程序结束销毁。

    静态变量:程序结束销毁。

发表于 2022-07-04 12:08:22 回复(0)
链接:https://acm.nowcoder.com/questionTerminal/f33242ae3f1f4dbe85573915ac974de2?orderByHotValue=1&page=1&onlyReference=false
来源:牛客网

从所在位置、作用域、内存位置、生命周期来说一说静态变量、全局变量、局部变量的特点:

  1. 位置

    局部变量:在函数中或者方法中,函数的参数,局部代码块中。

    全局变量:在文件中,函数外。

    静态变量:使用 static 修饰,可以是局部、全局或者修饰类成员。

  2. 作用域

    局部变量:作用域为局部,也就是函数或方法中,出了作用域就不能访问,同一作用域不能有同名的变量,如果全局变量和局部变量同名,则访问时采用"就近原则"。

    全局变量:作用域为全局,在本文件或者其它文件中都可以访问,在其它文件中访问可以通过 extern 进行声明,表示使用外部的全部变量。

    静态变量:静态局部变量作用域为局部,静态全局变量作用域为所在文件中,其它文件中访问不了。

  3. 内存位置

    局部变量:存储在栈内存中。

    全局变量:存储在静态存储区中,如果未初始化或者初始化为0,在BSS段,初始化了在DATA段。

    静态变量:存储在静态存储区中,如果未初始化或者初始化为0,在BSS段,初始化了在DATA段。

  4. 生命周期

    局部变量:出了作用域销毁。

    全局变量:程序结束销毁。

    静态变量:程序结束销毁。

发表于 2022-12-23 19:09:27 回复(0)