声明
一、基本类型声明形式
一个简单变量的声明形式即:类型说明符 + 变量名
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;
- 同一条声明语句中的多个变量之间用逗号分隔
- 定义时可为一个或多个变量赋予初始值