一、变量声明
变量声明就是告诉编译器你要使用一个什么类型的变量,并为它分配内存空间。声明变量的基本语法如下:
类型 变量名;
示例:
int age;
double price;
char grade;
此时,age
是一个整型变量,price
是一个双精度浮点型变量,grade
是一个字符型变量。
二、变量初始化
变量初始化就是在声明变量的同时给它赋一个初始值。初始化可以在声明时进行,也可以在声明后赋值。
1. 声明时初始化
int age = 18;
double price = 99.99;
char grade = 'A';
2. 声明后赋值(赋值不是初始化)
int age;
age = 18;
三、C++中的初始化方式
C++ 支持多种初始化方式,主要有以下几种:
1. 括号初始化(构造函数风格)
int a(10);
double b(3.14);
2. 等号初始化(拷贝初始化)
int a = 10;
double b = 3.14;
3. 列表初始化(C++11 引入)
int a{10};
double b{3.14};
int c{}; // 初始化为0
注意:
- 列表初始化可以防止窄化(narrowing)转换,比如
int a{3.14};
会报错。 int c{};
这种写法会将变量初始化为0。
四、未初始化变量的风险
- 局部变量(在函数内部声明的变量)如果没有初始化,其值是未定义的(随机值)。
- 全局变量、静态变量如果没有初始化,会被自动初始化为0。
示例:
void func() {
int x; // 未初始化,值不确定
std::cout << x << std::endl; // 可能输出任意值
}
五、常量声明与初始化
常量必须在声明时初始化,且值不能再改变。
const int maxSize = 100;
六、auto 关键字(类型自动推断,C++11)
auto x = 10; // x 被推断为 int
auto y = 3.14; // y 被推断为 double
auto z = 'A'; // z 被推断为 char
七、总结
- 声明:告诉编译器变量的类型和名字。
- 初始化:为变量赋初值。
- C++ 支持多种初始化方式,推荐使用列表初始化(
{}
)以避免隐式类型转换带来的问题。 - 局部变量未初始化会有随机值,需注意。