C++ 变量



C++ 中的变量

变量是用于保存数据的命名存储位置,变量允许程序员将数据存储到计算机内存中并使用其中的数据。

变量可以以多种方式声明,每种方式具有不同的内存要求。

变量是编译器根据变量的数据类型分配的内存位置的名称。



变量的基本类型

变量在声明时必须指定一个 数据类型,分配给变量的内存取决于这个数据类型,以下是变量的基本类型:

bool用于存储布尔值的变量( True 或 False )
char用于存储字符类型的变量。
int用于存储整数值的变量
float 和 double用于存储小数的变量


声明和初始化

变量必须在使用前声明。 例如:

int i;      // 声明但未初始化
char c; 
int i, j, k;  // 声明多个

初始化是指为已经声明的变量赋值

int i;   // 声明
i = 10;  // 初始化

初始化和声明也可以一步完成,

int i=10;         //声明时就初始化
int i=10, j=11;

如果一个变量被声明并且默认情况下没有初始化,它将保存一个垃圾值,此外,如果一个变量被声明过,如果再次声明它,我们在编译时会发生错误。

int i,j;
i=10;
j=20;
int j=i+j;   //编译错误, 变量j重复声明


变量范围

所有变量都有其作用范围,超出该范围将无法使用,该范围称为作用域,一般情况下,使用域位于花括号之间,在花括号里面声明和使用变量,在外部则使用不了。在后面的章节中我们将学习类中的变量以及它的作用域,目前我们可以将变量大致分为两种主要类型

  • 全局变量
  • 局部变量

全局变量

全局变量是那些一旦声明就可以被任何类或任何函数甚至在程序的整个生命周期中都可以使用的变量,它们必须在 main() 函数之外声明,如果只声明,它们可以在程序生命周期的任何方赋值,但即使它们在声明的时候就初始化,它们也可以在程序中的任何地方更改该值。

例如:仅声明,未初始化的情况

include <iostream>
using namespace std;
int x;                // 声明全局变量x
int main()
{
    x=10;                 // 赋值
    cout <<"first value of x = "<< x;
    x=20;                 // 再次赋值
    cout <<"现在x的值为:"<< x;
}

局部变量

局部变量是仅存在于大括号之间的变量,我们只能在大括号内使用它,否则会导致编译错误。 示例

include <iostream>
using namespace std;
int main()
{
    int i=10;
    if(i<20)       
    {
        int n=100;   // 局部变量的声明和初始化
    }              // if条件作用域结束
    cout << n;      // 编译错误,使用未声明的变量n
}


一些特殊类型的变量

还有一些特殊的关键字,有其不同的用途,以下两个是主要使用的,我们后面章节会详细介绍。

  • Final - 一旦初始化,它的值不能改变。
  • Static - 静态变量只能被初始化一次,下次调用初始化语句时它的值将不会被重新初始化。

示例

#include <iostream.h>
using namespace std;
int main()
{
    final int i=10;
    static int y=20;
}