C++ 变量类型(Variables in C++)
变量是程序中用于存储数据的命名内存空间。C++ 变量有不同的类型,主要包括局部变量、全局变量、静态变量、常量变量等。
1. 变量的声明和初始化
1.1 变量声明
在 C++ 中,变量在使用前必须先声明:
数据类型 变量名;
示例:
int age; // 声明一个整型变量
double pi; // 声明一个双精度浮点数
char grade; // 声明一个字符
1.2 变量初始化
在声明变量的同时,可以对其进行初始化:
int age = 25;
double pi = 3.14159;
char grade = 'A';
1.3 多个变量同时声明
int a = 10, b = 20, c = 30;
2. C++ 变量类型
2.1 局部变量(Local Variables)
局部变量在函数或代码块中声明,只能在该范围内访问。
#include <iostream>
using namespace std;
void display() {
int x = 10; // 局部变量,仅在 display() 内有效
cout << "x = " << x << endl;
}
int main() {
display();
// cout << x; // ❌ 错误:x 在 main() 中不可访问
return 0;
}
特点:
- 只在定义它的代码块中可用。
- 变量会在代码块结束时销毁,释放内存。
2.2 全局变量(Global Variables)
全局变量在函数外部声明,作用域为整个程序。
#include <iostream>
using namespace std;
int g = 100; // 全局变量
void display() {
cout << "g = " << g << endl;
}
int main() {
display();
g = 200; // 可在任何函数中访问和修改
cout << "g = " << g << endl;
return 0;
}
特点:
- 作用域覆盖整个程序。
- 生命周期贯穿整个程序运行。
- 可能导致命名冲突,所以应尽量减少使用。
2.3 静态变量(Static Variables)
静态变量使用 static 关键字声明,它在程序运行期间只初始化一次,并保持其值不变。
#include <iostream>
using namespace std;
void counter() {
static int count = 0; // 只初始化一次
count++;
cout << "count = " << count << endl;
}
int main() {
counter();
counter();
counter();
return 0;
}
输出:
count = 1
count = 2
count = 3
特点:
- 局部静态变量只在第一次调用时初始化,后续调用保持原值。
- 全局静态变量作用域仅限当前文件,不会被外部文件访问。
2.4 常量变量(Constant Variables)
常量变量使用 const 关键字声明,值不能被修改。
#include <iostream>
using namespace std;
int main() {
const double PI = 3.14159;
// PI = 3.14; // ❌ 错误:常量不能修改
cout << "PI = " << PI << endl;
return 0;
}
特点:
- 只能初始化一次,后续不可更改。
- 可以用于数组大小、数学常量等场景。
2.5 变量作用域
变量的作用域决定了它在哪些地方可以被访问:
| 变量类型 | 作用范围 | 生命周期 |
|---|---|---|
| 局部变量 | 代码块(函数内) | 代码块结束时销毁 |
| 全局变量 | 整个程序 | 程序运行期间 |
| 静态变量 | 代码块内 | 仅初始化一次,程序结束时销毁 |
| 常量变量 | 代码块或全局 | 仅初始化一次,不能修改 |
3. 变量类型示例总结
#include <iostream>
using namespace std;
// 全局变量
int globalVar = 50;
void testStatic() {
static int count = 0; // 静态变量
count++;
cout << "Static count = " << count << endl;
}
int main() {
int localVar = 10; // 局部变量
const double pi = 3.14; // 常量变量
cout << "Local variable: " << localVar << endl;
cout << "Global variable: " << globalVar << endl;
cout << "Constant PI: " << pi << endl;
testStatic();
testStatic();
testStatic();
return 0;
}
输出:
Local variable: 10
Global variable: 50
Constant PI: 3.14
Static count = 1
Static count = 2
Static count = 3
4. 变量命名规则
C++ 变量命名需要遵循以下规则:
✅ 以字母或 _(下划线)开头
✅ 只能包含 字母、数字、下划线
✅ 不能使用 C++ 关键字(如 int, float, return 等)
✅ 区分大小写(var 和 Var 是不同变量)
✅ 推荐使用 有意义的变量名,避免 a, b, c 之类的无意义变量名
5. 总结
| 变量类型 | 关键字 | 作用范围 | 生命周期 | 备注 |
|---|---|---|---|---|
| 局部变量 | 无 | 代码块内 | 代码块结束时销毁 | 只在当前作用域有效 |
| 全局变量 | 无 | 整个程序 | 程序运行期间 | 占用整个程序的内存 |
| 静态变量 | static | 代码块内 | 程序运行期间 | 仅初始化一次,值保留 |
| 常量变量 | const | 代码块或全局 | 仅初始化一次 | 值不可更改 |
🚀 最佳实践:
- 局部变量优先,减少全局变量使用,避免命名冲突。
- 静态变量适用于需要记忆状态的场景,如计数器。
- 常量变量用于存储不会更改的值,提高代码安全性和可读性。