const用于定义不可变变量、指针、函数参数及成员函数,提升代码安全与可读性;1. const变量需初始化且不可修改,替代宏更安全;2. const指针分三种:指向常量、常量指针、指向常量的常量指,取决于const位置;3. const参数防止函数内误改实参,尤其用于引用或指针;4. const成员函数承诺不修改成员变量,可被const对象调用;5. const对象只能调用const成员函数,确保只读性;6. const返回值防止非法赋值,对自定义类型有意义;7. constexpr比const更严格,要求编译期确定值。合理使用const能明确接口语义,减少错误。

在C++中,const关键字用于定义不可变的变量、函数参数、成员函数和指针,帮助提高代码的安全性和可读性。正确使用const可以防止意外修改数据,并让编译器进行更多优化。
1. const修饰基本数据类型变量
用const声明的变量值不能被修改,必须在定义时初始化。
const int size = 10;size = 20; // 编译错误:不能修改const变量
这种用法常用于替代宏定义,更安全且具有类型检查。
2. const与指针
const和指针结合有多种情况,关键是看const修饰的是指针本身还是指向的内容。
立即学习“C++免费学习笔记(深入)”;
- const int* p; — 指向常量的指针,内容不能改,指针可以改
- int* const p; — 常量指针,内容可以改,指针不能改
- const int* const p; — 指向常量的常量指针,都不能改
记忆技巧:看const紧邻哪边。如果在类型前,表示内容不可变;在*后,表示指针本身不可变。
3. const用于函数参数
当函数参数为引用或指针时,加上const可防止函数内部修改实参。
void print(const std::string& str) {// str不能被修改
}
这对大对象尤其重要,避免拷贝的同时保证安全性。
4. const成员函数
成员函数后加const表示该函数不会修改类的成员变量。
本文档主要讲述的是Python开发网站指南;HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器 Python和其他程序语言一样,有自身的一套流程控制语句,而且这些语句的语法和其它程序语言类似,都有for, if ,while 类的关键字来表达程序流程。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
int getValue() const { return value; } // 不会修改成员
void setValue(int v) { value = v; }
private:
int value;
};
只有const成员函数才能被const对象调用。
5. const对象与const成员访问
const对象只能调用const成员函数,不能调用非常量成员函数。
const MyClass obj;obj.getValue(); // OK
obj.setValue(5); // 错误:不能调用非const函数
这是const正确性的体现,确保只读对象不被修改。
6. const返回值
某些情况下返回const值可以防止赋值操作,比如:
const int getValue() const;这样写可以防止如 getValue() = 10; 这类非法赋值(虽然对内置类型意义不大,但对自定义类型有用)。
7. constexpr与const区别(补充)
constexpr要求在编译期就能确定值,比const更严格。
constexpr int square(int x) { return x * x; }constexpr int s = square(5); // 编译期计算
const变量可以在运行时初始化,而constexpr必须在编译时确定。
基本上就这些。const的使用核心是“承诺不修改”,合理使用能让接口语义更清晰,减少bug。掌握好const,是写出高质量C++代码的重要一步。









