C++的const关键字怎么用?有什么作用?

c++onst是c++中用于声明常量或不可修改对象的关键字,能提升代码可读性、安全性并辅助编译器优化。1. 声明常量变量时,如const int max_size = 100; 表示初始化后不可修改,适合配置参数和数组大小定义,且比宏定义更安全。2. 修饰指针时,const在左边表示内容不可变,如const int p1;在右边表示指针不可变,如int const p2;两者结合则均不可变。3. 成员函数加const如double getarea() const,表明不修改对象状态,允许const对象调用并增强可读性。4. 函数参数使用const引用如void printstring(const std::string& str),避免拷贝提升性能且保证数据不被修改。合理使用const有助于减少bug并提高代码清晰度。

C++的const关键字怎么用?有什么作用?

const 是 C++ 中一个非常实用的关键字,它的作用是声明“常量”或“不可修改的对象”。合理使用 const 可以提升代码的可读性和安全性,也能帮助编译器做优化。

下面从几个常见的使用场景来说明怎么用、有什么作用。

1. 声明常量变量

这是最基础的用法。当你希望某个变量在初始化后就不能再被修改时,就可以加上 const

立即学习“C++免费学习笔记(深入)”;

const int max_size = 100;

这行代码声明了一个整型常量 max_size,之后不能再对它赋值。如果不小心写了:

max_size = 200; // 编译错误

编译器会报错,防止意外修改。这种写法特别适合定义配置参数、数组大小等不会变化的值。

小提示:C++ 中的 const 常量比宏定义(如 #define MAX_SIZE 100)更安全,因为它是有类型的,并且遵守作用域规则。

2. const 修饰指针和引用

指针相关的 const 容易让人混淆,但其实只要记住两个原则就能轻松掌握:

*const 在 左边**:表示指向的内容不能变*const 在 右边**:表示指针本身不能变

比如:

int a = 10, b = 20;const int* p1 = &a; // 内容不能改,p1可以指向其他地址p1 = &b;            // OK// *p1 = 30;        // 错误!内容不能改int* const p2 = &a; // 指针不能换指向,但内容可以改// p2 = &b;         // 错误!指针不能变*p2 = 30;           // OKconst int* const p3 = &a; // 都不能变

这个规则在函数传参中也很常见,例如你想确保一个函数不修改传入的数据,可以这样写:

void printValue(const int* value) {    std::cout << *value << std::endl;}

这样调用者就知道你不会修改他们传进来的数据了。

3. const 成员函数

类中的成员函数如果不会修改对象的状态,应该加上 const 修饰符。

举个例子:

class Circle {private:    double radius;public:    double getArea() const {        return 3.14159 * radius * radius;    }};

这里的 getArea() 是一个 const 成员函数,意味着它不会修改类的任何成员变量。如果你试图在里面修改 radius,编译器就会报错。

这样做的好处是:

允许 const 对象调用这个函数明确表达函数的行为意图,增强可读性

另外,const 函数只能调用其他 const 函数,不能调用非 const 函数。

4. const 与函数参数传递

在函数参数中使用 const,尤其是配合引用时,可以避免不必要的拷贝,同时又保证原始数据不被修改。

比如:

void printString(const std::string& str) {    std::cout << str << std::endl;}

这里用了 const std::string&,说明:

不需要拷贝整个字符串(性能好)不会修改传入的字符串(安全性高)

类似地,在传递复杂结构体或自定义类型时,这种写法很常见。

基本上就这些。
虽然 const 的用法看起来简单,但在实际编码中容易忽略一些细节,特别是指针和成员函数的用法。不过一旦熟练掌握,你会发现它能有效减少 bug,让代码更清晰、更安全。

以上就是C++的const关键字怎么用?有什么作用?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1462698.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
什么是C++中的引用?
上一篇 2025年12月18日 14:39:03
c++中|的意思 按位或运算符使用场景示例
下一篇 2025年12月18日 14:39:12

相关推荐

发表回复

登录后才能评论
关注微信