本文为firedragonpzy原创,转载务必在明显处注明:
转载自【Softeware MyZone】原文链接: http://www.firedragonpzy.com.cn/index.php/archives/935
今天研究了下变量,现在分享一下:
变量是有属性的,包括:变量的数据类别、变量的存储类别,其中,我们根据变量的存储类别又可以得知变量的作用域和存储期两个属性。
关于类别就不赘述了,但有可能会在typedef一文中解释下。下面重点来看变量的存储类别。
首先,看一下存储类别的定义:是数据在内存中存储的方法。存储方法分为静态存储和动态存储。具体包含四种:自动的(auto),静态的(static),寄存器的(register)和外部的(extern)。
其中静态存储和动态存储决定了变量的存储器是静态存储期还是动态存储期。
对于动态存储变量,当程序运行到该变量时才为其分配存储空间,当程序运行到该变量所在作用域的结束处时自动收回为其分配的存储空间,因此它的存储期为所在作用域的时间。这些变量一般是1)函数形式参数2)函数中的自动变量
对于静态存储变量,在程序开始就执行就为其分配存储空间,直到程序结束时,才收回变量的存储空间,其生命周期为整个程序执行的过程。这些变量一般是全局的或者静态的
接下来,详细介绍一下四种存储方法;
1 、自动的(auto)
函数中的局部变量,如果不用static加以声明,编译系统对它们是动态分配存储空间的。
2、静态的(static)
有两种,全局的和静态的,即在程序运行的过程中始终是占用一个存储空间。
3、寄存器的(register)
动态分配方式,编译器不为寄存器类型的变量分配内存空间,而是直接使用cpu的寄存器。以便提高对这类变量的存取速度。主要用于不需要长期保存的变量。
4、外部的(extern)
只能用来声明已经定义的全局(外部)变量,
有两种情况下需要使用全局(外部)变量,
(1)在同一源程序文件中,当在全局的定义之前使用了该变量,在使用前要对该变量进行外部类型变量声明。
(2)当程序有多个文件组成时,若在一个源文件中要引用在另一个源文件中定义的全局变量,在引用前必须对所引用的变量进行外部声明。
如果在某文件中定义的全局变量不想被其他文件所调用,则必须将该变量声明为静态全局变量,也就是说,静态全局变量只能供所在的文件使用。
分享到:
相关推荐
根据提供的标题、描述和标签,本文将详细介绍C++中变量的存储方式,包括不同类型的变量如何在内存中分配以及它们的特点。 ### C++中变量的存储方式 在C++编程语言中,变量是程序中最基本的数据单位之一。理解变量...
定义没有初始化式的变量时,系统有时候会帮我们初始化变量。 系统如何初始化取决于变量的类型以及变量定义的位置。 内置类型变量是否自动初始化取决于变量定义的位置。 函数体外定义的变量初始成0;函数体内定义的...
本文将详细介绍C++变量命名的一般规则及推荐做法,并结合实际示例进行解析。 #### 二、全局变量命名规范 对于全局变量(即在整个项目中可见的变量),建议采用前缀`g_`开头。这样做的好处在于能够清晰地区分出这些...
C++中的全局变量初始化是一个重要的话题,涉及到程序的正确性和可预测性。全局变量,即具有静态存储期的变量,其生命周期始于程序开始,终于程序结束。本文将深入探讨全局变量初始化的时机、方式以及一些处理特殊...
在C++编程语言中,全局变量是在程序的任何作用域之外声明的变量,可以在程序的多个函数或类中被访问。它们在整个程序的生命周期内都存在,从程序开始执行到结束时保持其值。全局变量的使用有其优点,如共享数据和...
在C++编程语言中,变量的引用是一种非常重要的特性,它是C++相对于C语言的一个显著扩展。引用可以被看作是变量的别名,一旦一个引用被初始化为某个变量,它就永久地与该变量绑定,不能改变引用的对象。下面我们将...
在C++编程中,修改系统环境变量是一项常见的任务,特别是在Windows操作系统中。环境变量存储了与用户或系统相关的路径、配置和其他信息,这些信息可供程序在运行时使用。本篇文章将详细探讨如何在C++中实现这个功能...
C++中,全局变量只能声明、初始化,而不能赋值 也就是说,下面这样是不被允许的: #include using namespace std; int a; a = 2; int main() { return 0; } 错误提示是: C++ requires a type specifier for all...
3. **静态变量**:C++和Java都支持静态变量,但C++中的静态成员属于类本身,而非类的每个实例,而在Java中,静态变量也适用于类的所有实例。 4. **初始化**:C++允许在类声明中直接初始化成员变量,Java则需要在...
### 在C/C++项目中使用全局变量的方法 #### 概述 在开发C/C++项目时,有时需要在多个源文件之间共享数据或状态信息。全局变量作为一种简单且直观的数据共享方式,在某些场景下非常实用。然而,不当的使用全局变量...
在C++编程语言中,变量的存储类别和属性是理解程序内存管理的关键概念。存储类别主要涉及变量在内存中的分配方式、生命周期以及作用域。以下是关于C++中变量存储类别的详细说明: 1. **自动变量(auto)**: 这是最...
在C++编程语言中,变量是程序中存储和操作数据的基本单位。理解变量的存储属性、生存期和作用域对于编写高效且可靠的代码至关重要。在本篇内容中,我们将深入探讨这些概念。 首先,变量的存储属性指的是变量在内存...
C++变量名规则是指在C++语言中命名变量的规则和约定。这些规则和约定旨在提高代码的可读性、维护性和重用性。良好的变量名规则可以帮助开发者快速理解代码的意图和目的,提高开发效率和代码质量。 变量名规则的基本...
深入解析C++中的临时变量:理解其本质与作用 在C++编程中,临时变量扮演着至关重要的角色,尽管它们通常在代码中“隐身”,但它们的存在极大地影响着程序的性能和行为。本文将深入探讨C++中的临时变量,从操作系统...
### C++变量的使用与意义 #### 一、变量的基础使用 ##### 1.1 变量的声明 在C++中,变量是程序中用来存储数据的基本单元。要使用一个变量,首先需要声明它。声明变量时需要指定变量的类型和名称。例如: ```cpp ...
本文深入探讨了C++中变量类型的特性和生命周期,通过汇编层面的分析,揭示了全局变量和局部变量在内存中的表现和行为。 首先,让我们从全局变量的生命周期和可见性开始。全局变量是在程序的整个生命周期内都存在的...
* 在 C++ 中,本地变量的定义看起来与 Java 中相同,但 C++ 编译器不对本地变量进行初始化检验,所以容易忘记初始化一个变量。 * C++ 中类可以有数据域和静态变量,与 Java 一样。 * 不同的是,C++ 中变量可以在函数...
C++变量命名规则 C++变量命名规则是为了增强代码的可读性和容易维护性。以下是C++必须遵守的变量命名规则: 一、 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。 二、 第一个字母必须是字母...
本文将详细讲解如何利用C++来操作TCL脚本中的变量,以便实现两者之间的数据交换。 首先,我们需要理解TCL是一种动态类型的脚本语言,常用于自动化任务和快速原型开发。C++则是一种强大的面向对象的编程语言,广泛...