当前位置: 首页 > wzjs >正文

尉氏做网站白嫖永久服务器

尉氏做网站,白嫖永久服务器,设计素材的网站,网站功能优化的意义🚀 什么是 const? const 的意思就是:不能改! 举个例子: const int a 5; a 10; // 错误!因为 a 是 const 的,不能改 就是这么简单! 🍎 举例1:常量变量…

🚀 什么是 const

const 的意思就是:不能改!

举个例子:

const int a = 5;

a = 10; // 错误!因为 a 是 const 的,不能改

就是这么简单!


🍎 举例1:常量变量

const int x = 100;

意思是:x 永远是100,不能变了。


🍔 举例2:函数参数用 const(防止修改)

void print(const int a) {
    // a 不能被改
    cout << a << endl;

 

这表示:a 是一个只读参数,函数里不能改它的值


🍟 举例3:引用 + const(超级常用!)

void print(const string& str) {
    cout << str << endl;

 

这个很重要!表示:

  • str 是传引用(效率高)

  • const 表示不能在函数里改这个字符串


🧊 举例4:指针 + const

你只记住下面这三种情况就够了:

写法含义
const int* p指向常量的指针(不能改 *p)
int* const p常量指针(不能改 p)
const int* const p两个都不能改(*p 不能改,p 也不能改)

📦 举例5:类的 const 成员函数

class Person {
public:
    void show() const {
        // 这里不能改任何成员变量
    }
}

这个 const 是说:我保证这个函数只用来看,不动任何数据。


🧠 总结口诀:

加了 const,表示不能改!

你以后只要看到 const,就问自己一句:“是不是说它不能改?”
 

我们下面再来看一个详细版本

constconstant 的缩写,意思是 “不变的”
在 C++ 中,它的作用是:

👉 告诉编译器某个变量(或函数)不允许被修改。


一、const 修饰普通变量

const int a = 7;

a = 8; // ❌ 错误:a 是常量,不能改

可以赋值给别人:

int b = a; // ✅ 正确


🚨 注意:const 虽然值不能改,但地址指向的内容可以被“非常规方式”改掉!

const int a = 7;

int* p = (int*)&a;

*p = 8;

cout << a; // 输出还是 7,而不是 8

解释:编译器会 优化 const 值的读取,不会重新读取内存中的值,所以就算你偷偷改了,也没用。


💡 想避开优化怎么办?

volatile

volatile const int a = 7;

int* p = (int*)&a;

*p = 8;

cout << a; // ✅ 现在输出 8


二、const 修饰指针变量(重点!)

👉 口诀记忆:

“左定值,右定向,const 修饰不变量”


A)const 修饰指针指向的内容

const int* p = &a;

  • 可以改 p 指向别的地址

  • 不可以改 *p 的内容(p 指向的值)

🔹 例子:

*p = 8; // ❌ 错误

p = &b; // ✅ 正确


B)const 修饰指针本身

int* const p = &a;

  • p 不能再指向其他变量

  • 但可以改 *p 的值


C)都修饰(完全只读)

const int* const p = &a;

  • p 不能变

  • *p 也不能变


三、const 修饰函数参数和返回值


A)值传递 + const(不常用)

void func(const int a);

值传递时参数本身就是拷贝,用 const 没多大必要,但加上可以防止误操作


B)引用传递 + const(常用!)

void show(const string& str);

  • 不复制,效率高

  • 不可修改,安全


C)指针参数 + const

void func(const int* p); // 不能改 *p 的值

void func(int* const p); // 不能改 p 指向的地址


D)函数返回值 + const

const int getValue();

如果函数返回 const 值,说明这个值不能再被赋值了:

getValue() = 10; // ❌ 错误

如果返回对象或引用,也可以加 const 限制只读性:

const Test& getTest();


四、const 修饰类成员函数

class MyClass {
public:
    int getVal() const; // ✅ 说明函数不会改成员变量
}

如果你这样写:

void show(const MyClass& obj) {obj.getVal(); // ✅ 正常
}

但如果 getVal() 没加 const,就会报错,因为 obj 是只读的。


✅ 小贴士:加了 const 的成员函数,不能改成员变量。

那如果我真的想改某个成员变量怎么办?


五、mutable 修饰变量(在 const 函数中也能改)

class Test {
public:
    void work() const {
        ++_counter; // ✅ 成功
    }

private:
    mutable int _counter;
};

🔹 只有 mutable 修饰的成员变量,在 const 成员函数中才能被修改。


✅ 总结(最重要的点):

用法意义
const int a = 5;a 是常量,不能变
const int* p指向的值不能改
int* const p指针地址不能改
const int* const p什么都不能改
void func(const int a)参数不能在函数中被改
void func(const int& a)引用参数,不复制,又不能改
int get() const函数保证不改类成员变量
mutable即使在 const 函数中也能改这个变量
http://www.dtcms.com/wzjs/498862.html

相关文章:

  • 凡科做网站类型应该做哪个广告
  • 政府网站建设典型经验材料怎样做平台推广
  • 广州网站建设 粤icp安卓优化大师新版
  • 做网站需要哪些素材成都营销推广公司
  • 企业融资需求怎么写西安seo专员
  • 学做网站的书籍销售管理软件
  • 制作网站哪家强搜索引擎营销的英文缩写
  • 云南省建设厅网站职称评审网站内容编辑
  • seo营销网站的设计标准如何开发一个软件平台
  • 建设门户网站需要注意什么产品营销
  • sqlite 做网站零基础seo入门教学
  • 资源网站很难做贵阳网站优化公司
  • 网站怎么做全屏滚动企业网站seo优化外包
  • 武汉哪个网站建设最好免费使用seo软件
  • 建筑网站带图解站长工具搜索
  • 本地wordpress怎么弄网站百度推广开户代理商
  • 东莞南城网站建设价格企业营销网站
  • 网站怎么建设的网站分析
  • 先做个在线电影网站该怎么做链接交换平台
  • 网站建设需要材料香蕉和忘忧草对焦虑的影响
  • 哪个网站上可以做代打360网站推广官网
  • 曹县做网站建设百度收录提交申请
  • 定制家具如何选择vue seo 优化方案
  • 专业开发网站多少钱自己怎么优化网站排名
  • 英国做暧小视频网站域名注册后怎么使用
  • 网站制作 牛商网dw软件怎么制作网页
  • 青岛网站建设及app有哪些平台可以免费发广告
  • 显示佣金的网站是怎么做的爱链网买链接
  • dw软件做的东西怎么在网站用北京seo经理
  • 网络维护公司需要什么资质济南优化网络营销