跳到主要内容

声明

一、基本类型声明形式

一个简单变量的声明形式即:类型说明符 + 变量名

bool flag;
char ch;
int ival;
double dval;
  • 当变量在程序中首次声明时,通常会隐式进行定义和初始化,即创建一个内存空间用于保存该变量并为其赋予初始值

  • 在创建变量时可以显式赋予初始值,如:

    bool flag = true;
    char ch = 'A';
    int ival = 48;
    double dval = 3.14;

    如果不显式赋予变量初始值,变量也会在创建时获得一个初始值,对于内置类型来说,该初始值并不固定,而是一个垃圾值。具体初始值取决于该变量所在的位置(初始化形式),参考【初始化-初始化形式

二、复合类型声明形式

1. 引用

  • 引用变量的声明必须进行初始化

    int a = 10;
    int &ra = a;
  • 如果用另一个引用作为引用变量的初始值,则新的引用将绑定到初始值引用所绑定的对象上,如果仍然是引用,则以此类推

    int &ra2 = ra;		// ra2 绑定到对象 a
  • 指针的引用

    int *pa = &a;
    int *&rpa = pa;
  • 数组的引用

    int arr[10];
    int (&rarr)[10] = arr;

2. 指针

  • 一般声明

    int a = 10;
    int *p;
    int *pn = nullptr;
    int *pa = &a;
  • 指向数组的指针

    int arr[10];
    int (*parr)[10] = &arr;

3. 数组

  • 一般声明

    int a[10];		// 10 个元素,默认初始化或值初始化
    int b[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 10 个元素依次初始化
    int c[10] = {1, 2, 3, 4, 5}; // 10 个元素,前五个依次初始化,后 5 个值初始化
    int d[] = {1, 2, 3, 4, 5}; // 5 个元素,依次初始化
    int e[] = "hello world!"; // 13 个元素,末尾含空字符
    int f[] = {'h', 'e', 'l', 'l', 'o', ' ',
    'w', 'o', 'r', 'l', 'd', '!'}; // 12 个元素,末尾不含空字符
  • 指针的数组

    int *a[10];

三、多变量统一声明

可以在一条声明语句中声明多个变量,前提是声明这些变量所需要的类型说明符相同:

bool flag1, flag2;
int ival1, ival2 = 48;
double dval1 = 3.14, dval2 = 2e10;
  • 同一条声明语句中的多个变量之间用逗号分隔
  • 定义时可为一个或多个变量赋予初始值