C++语言变量重点知识
·
变量定义与声明
在C++中,变量必须在使用前定义或声明。定义会分配内存,而声明仅告知编译器变量的存在(通常用于头文件)。
- 定义语法:
数据类型 变量名 = 初始值;int age = 25; // 定义并初始化 double salary; // 定义未初始化(值不确定) - 声明语法(使用
extern):extern int globalVar; // 声明变量(定义在其他文件中)
基本数据类型
C++内置基础数据类型包括:
- 整型:
short、int、long、long long(可配合signed/unsigned修饰)。 - 浮点型:
float、double、long double。 - 字符型:
char(1字节)、wchar_t(宽字符)。 - 布尔型:
bool(值为true或false)。
变量作用域
- 局部变量:在函数或代码块内定义,仅在其范围内有效。
void foo() { int x = 10; // 局部变量 } - 全局变量:在函数外定义,整个程序可见(需谨慎使用)。
int global = 42; // 全局变量
常量与const关键字
使用const定义不可修改的变量,必须在定义时初始化。
const double PI = 3.14159; // 常量
constexpr int SIZE = 100; // 编译时常量(C++11引入)
类型推断(auto)
C++11引入auto关键字,编译器自动推断变量类型。
auto num = 42; // 推断为int
auto name = "Alice"; // 推断为const char*
静态变量(static)
- 局部静态变量:生命周期延长至程序结束,作用域不变。
void counter() { static int count = 0; // 仅初始化一次 count++; } - 全局静态变量:限制作用域为当前文件(避免命名冲突)。
引用与指针
- 引用:变量的别名,必须初始化且不可重新绑定。
int a = 10; int& ref = a; // ref是a的引用 - 指针:存储内存地址,可修改指向。
int* ptr = &a; // ptr指向a的地址 *ptr = 20; // 通过指针修改a的值
类型转换
C++支持显式类型转换:
- 静态转换(
static_cast):用于相关类型(如整型转浮点)。double d = static_cast<double>(5); - 动态转换(
dynamic_cast):用于多态类层次。 - 常量转换(
const_cast):移除const属性。 - 重新解释转换(
reinterpret_cast):低层不安全转换。
变量命名规范
- 遵循驼峰命名法(如
studentName)或下划线命名法(如max_value)。 - 避免使用保留关键字(如
int、class)。 - 命名应具有描述性(如
userCount而非uc)。
初始化方式(C++11起)
- 列表初始化:使用花括号
{},避免窄化转换。int x{10}; // 直接初始化 int y = {20}; // 拷贝初始化 - 默认初始化:对类类型调用默认构造函数。
std::string s; // 默认初始化为空字符串
更多推荐


所有评论(0)