首页 > 试题广场 >

下列存储标识符中,( )的可见性与存在性不一致

[单选题]

下列存储标识符中,( )的可见性与存在性不一致

  • 外部类
  • 自动类
  • 内部静态类
  • 寄存器类
        可见性就是在在什么地方可以调用,能调用的地方就是可见,而存在性,就是在什么地方什么时候初始化,然后使用完后在什么地方什么时候释放,存在性一般是在运行时的生命周期内起作用的,这个题目里除了static其他都是在函数结束时自动释放了。
        其实本题目考察的是变量的存在性与可见性,还有函数的可见性与存在性。借用百度文库的一些详细解释,可以看看其中的区别。
    . 一、变量的 作用域 存储类型

一个 C 程序( *.EXE )由若干个 C 文件( *.C )组成,一个( *.C )文件由若干个 C 函数组成。函数内、外均可(根据需要)定义或声明变量。

作用域划分 内部变量 外部变量

内部变量 :在函数内定义变量称为内部变量局部);

外部变量: 函数外定义变量称为外部变量全局);

二者区别 定义出现的位置

存储类型划分 autostatic/register(动态、静态/寄存器变量)

变量 定义 一般 格式 [ 存储类 ] 数据类型 变量表

auto :动态:( [ 存储类 ] 缺省时,系统默认为动态;)

      位置:动态区

特点: 程序运行时动态分配,每次调用时都重新赋初值,调用不赋初值时,其值不确定。

static :静态:

       位置:静态区

特点: 程序编译时静态分配,每次调用时不再重新赋初值,保留最后一次调用的值。

二者区别 存储位置不同,

register :寄存器:

位置:在CPU内;

特点:速度快;

补充说明: 一般不用认为进行 存储类 型声明,系统编译时,根据需要自动声明 register 类型)

二、Static:用于变量和函数时的不同意义

1. Static:用于变量时,共性是:静态存储

  (1) 用于外部变量:代表是本*.C文件内私有变量,且静态存储

               其他*.C(即使用extern声明也)不能调用

  (2)用于内部变量:代表是本函数内私有变量,且静态存储

2. Static:用于函数时,代表是本*。C文件私有函数,其他*。C(即使用extern声明也)不能调用

  Static:静态的:用于外部变量或函数时,代表作用域;用于内部变量时,代表生存周期




发表于 2017-06-01 11:18:38 回复(3)