C++ 存储类

存储类是定义变量或函数的作用域、生命周期和可见性的方法。C++ 提供了几种不同的存储类,每一种都有其特定的用途和特性。

自动存储类 (auto)

auto 是 C++ 中默认的存储类。当未指定存储类时,变量被视为自动存储类。auto 变量在其声明所在的块作用域内有效,并且在该块结束时被销毁。

-- -------------------- ---- -------
-------- ----------

--- ------ -
    ---- --- - - --- -- - -------
    -
        ---- --- - - --- -- - -------
        --------- -- --- - -- - -- -- -- - -- - -- ----------
    - -- - ------
    --------- -- --- - -- - -- ---------- -- -- - --
    ------ --
-

静态存储类 (static)

static 存储类用于定义静态变量。静态变量在其声明所在的块作用域内有效,但它们不会在块结束时被销毁。静态变量在程序的整个生命周期内都存在,并且它们的值在函数调用之间保持不变。

-- -------------------- ---- -------
-------- ----------

---- ------ -
    ------ --- ----- - -- -- ----- -------
    --------
    --------- -- ------- - -- ----- -- ----------
-

--- ------ -
    ------- -- -- ------ -
    ------- -- -- ------ -
    ------- -- -- ------ -
    ------ --
-

寄存器存储类 (register)

register 存储类用于建议编译器将变量存储在寄存器中,而不是内存中。这可以加快访问速度,因为寄存器比内存访问速度快得多。然而,现代编译器通常会忽略这个建议,因为它们可以根据需要优化代码。

外部存储类 (extern)

extern 存储类用于声明一个已在其他地方定义的变量。它告诉编译器这个变量在其他地方已经被定义,因此不需要为它分配额外的空间。

-- -------------------- ---- -------
-- ---------
--- --------- - ---

-- ---------
------ --- ---------- -- -- --------- --------
-------- ----------

--- ------ -
    --------- -- ----------- - -- --------- -- ----------
    ------ --
-

全局存储类 (全局变量)

全局变量是在任何函数之外声明的变量。它们在整个程序中都可以访问,并且具有文件作用域。这意味着全局变量可以在声明它们的源文件中的任何位置访问。

-- -------------------- ---- -------
-------- ----------

--- --------- - --- -- ----

---- ---------------- -
    --------- -- ----------- - -- --------- -- ----------
-

--- ------ -
    -----------------
    ------ --
-

局部存储类 (局部变量)

局部变量是在函数内部声明的变量。它们只在声明它们的块作用域内有效。一旦块结束,局部变量就会被销毁。

-- -------------------- ---- -------
-------- ----------

---- ------ -
    --- -------- - --- -- ----
    --------- -- ---------- - -- -------- -- ----------
-

--- ------ -
    ------- -- -- --------- --
    -- --------- -- ---------- - -- -------- -- ---------- -- ----------- --------
    ------ --
-

通过理解和使用这些存储类,你可以更好地控制变量和函数的作用域、生命周期以及可见性,从而编写出更高效、更清晰的 C++ 程序。

上一篇: C++ 修饰符类型
下一篇: C++ 运算符
纠错
反馈