C++学习之四、C++变量

C++ 变量是什么,变量的作用,变量的其它功能。

变量作用

变量用来表征:

  • 信息将存储在哪里。
  • 要存储什么值。
  • 存储何种类型的信息。

变量名命名规则

  • 名称中只能使用字母字符、数字和下划线(_)。
  • 名称中第一个字符不能是数字。
  • 区分大小写。
  • 不能将 C++ 关键字用作名称。
  • 以两个下划线开头或以下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。
  • C++ 对于名称长度没有限制(但是可能系统会对名称长度有限制)。

变量初始化

初始化将赋值与声明合并在一起,如果不对函数内部定义的变量进行初始化,该变量的值将是不确定的。

  • 常规方式: int n_int = INT_MAX; int one = 1;
  • C++ 特有方式:short n_short(SHRT_MAX);
  • C++11 新增方式:
    1
    2
    3
    int n_int = {INT_MAX};    // 大括号初始化器,又称为列表初始化,大括号初始化器可以用于任何类型,如初始化常规变量和初始化类变量等,这是一种通用的初始化语法
    int n_int{INT_MAX}; // 可省略等号
    int n_int{}; // 大括号可以不包含任何东西,这种情况将初始化为 0

const 限定符

const 等价于 C 语言中的 #define,C++ 中推荐使用 const 来声明一个值不可变的变量,也即常量。
const#define 相比的好处:

  • 它能够明确指定数据类型。
  • C++ 作用域规则可将定义限制在特定的函数或文件中。
  • const 可用于更复杂的类型。
    const 限定的变量需要直接初始化,之后该变量的值不可改变。
    const int MONTH = 12;

auto 声明(自动推断)

C++11 新增了一个工具,让编译器能够根据初始值的类型推断变量的类型。为此,它重新定义了 auto 的含义。

一般用于处理复杂类型。