网站首页 > 基础教程 正文
在 C++ 中,auto、register、static、extern 和 mutable 是用于变量声明的关键字,它们各自有不同的用途和特性:
auto
- 用途:自动类型推导。
- 功能:让编译器根据初始化表达式自动推导变量的类型。
- 示例:
auto x = 10; // x 是 int 类型
auto y = 3.14; // y 是 double 类型
auto z = "hello"; // z 是 const char* 类型
register
- 用途:建议编译器将变量存储在寄存器中以提高访问速度。
- 注意:现代编译器通常会自动优化,register 关键字的实际效果有限。
- 示例:
register int counter = 0;
static
- 用途:
- 局部变量:在函数内声明的静态变量在函数调用间保持其值。
- 全局变量/函数:限制变量或函数的作用域为声明它的文件。
- 示例:
void func() {
static int count = 0; // 每次调用 func() 时,count 的值会被保留
count++;
}
static int globalVar = 0; // 仅在当前文件可见
extern
- 用途:声明变量或函数是在其他文件中定义的。
- 功能:用于跨文件访问全局变量或函数。
- 示例:
extern int globalVar; // 声明在其他文件中定义的变量
mutable
- 用途:允许在 const 对象中修改某个成员变量。
- 功能:对需要在 const 成员函数中修改的成员变量使用。
- 示例:
class MyClass {
public:
mutable int counter;
void increment() const {
counter++; // 即使在 const 函数中,也可以修改 counter
}
};
这些关键字在不同的上下文中提供了灵活的变量管理和优化方式,帮助开发者更好地控制变量的生命周期、作用域和性能。
- 上一篇: C++|作用域限定符(:)的七种使用场合和用法
- 下一篇: C++静态成员变量和静态成员函数使用总结
猜你喜欢
- 2024-10-12 C++中override与overload的区别:深入解析与应用
- 2024-10-12 C++中的static_cast #程序代码 c++ static用法
- 2024-10-12 为什么C++ 单例局部static初始化是线程安全的?
- 2024-10-12 编码规范-C++:尽可能使用static_cast而不是reinterpret_cast
- 2024-10-12 C++类对象中的this指针与静态成员:理解与应用
- 2024-10-12 看完就会用的C++17特性总结 c++ 17 新特性
- 2024-10-12 C++|变量的类型系统和属性 c++变量有哪几种作用域
- 2024-10-12 C++友元和静态函数:如何用特殊的方式访问和管理类的成员
- 2024-10-12 C++中的static关健字 c static关键字
- 2024-10-12 C++静态成员变量和静态成员函数使用总结
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)