C++变量核心知识
·
C++变量基础概念
变量是程序中的基本存储单元,用于存储数据。在C++中,变量需明确类型、名称和作用域。
声明与定义
- 声明:告知编译器变量的存在(
extern int x;)。 - 定义:分配内存并初始化(
int x = 10;)。
命名规则
- 由字母、数字、下划线组成,不能以数字开头。
- 区分大小写,避免使用保留关键字(如
int、class)。
变量类型
C++变量分为基本类型和派生类型:
基本数据类型
- 整型:
int(4字节)、short(2字节)、long(8字节)。 - 浮点型:
float(4字节)、double(8字节)。 - 字符型:
char(1字节),存储ASCII值。 - 布尔型:
bool,值为true或false。
派生数据类型
- 数组:
int arr[5]; - 指针:
int* p = &x; - 引用:
int& ref = x;(别名,必须初始化)。
变量作用域
- 局部变量:函数或块内定义,仅在其范围内有效。
void func() { int local = 5; // 局部变量 } - 全局变量:函数外定义,整个文件可见。
int global = 10; // 全局变量 int main() { /* ... */ }
变量存储类别
- 自动存储(auto):默认方式,函数结束时释放(局部变量)。
- 静态存储(static):生命周期持续到程序结束。
void counter() { static int count = 0; // 仅初始化一次 count++; } - 动态存储(new/delete):手动管理内存。
int* ptr = new int(10); // 动态分配 delete ptr; // 释放内存
常量与修饰符
- const:不可修改的常量。
const int PI = 3.14; - constexpr:编译时常量(C++11)。
constexpr int SIZE = 100; - volatile:防止编译器优化(用于硬件寄存器等)。
类型推断与自动声明(C++11)
- auto:自动推断变量类型。
auto x = 5; // int auto y = 3.14; // double - decltype:推断表达式类型。
int a = 10; decltype(a) b = 20; // b的类型与a相同(int)
初始化方式
- 拷贝初始化:
int x = 10; - 直接初始化:
int x(10); - 列表初始化(C++11):
int x{10};(避免窄化转换)。
作用域解析运算符(::)
访问全局变量(当与局部变量同名时)。
int x = 100;
int main() {
int x = 50;
cout << ::x; // 输出全局变量100
}
更多推荐
所有评论(0)