C++_const的用法,极其简单,一眼就会[小技巧]

本文介绍了C++中const关键字的使用规则,包括const修饰变量、指针及成员函数的情况。通过示例代码解析了const如何影响变量的可变性以及指针的指向和值。同时,文章还探讨了const在函数返回值中的应用。
摘要由CSDN通过智能技术生成

今天来给大家分享C++的const用法,非常简单,希望能对广大网友有帮助。

先说方法,牢记以下三点,带const的代码,一眼识别:
const的用法:
   ①当const的左边有东西时,就修饰左边的东西,当const左边没有东西时,就修饰右边的东西;
   ②当const修饰的是*时,则指针变量的指向不能被改变,指针变量指向的内存的值可以被改变;
   ③当const修饰的是类型时,则该变量的值不能被改变,若该变量是指针变量,则指针变量指向的内存的值不能被改变,指针变量的指向可以被改变。

接下来看例1:

#include <iostream>
using namespace std;
int main()
{
    const int k = 0;//const左边没有东西,修饰右边的int类型
    //k =1;         //编译错误,const修饰int类型,变量k的值不能被改变
    int const kl = 0;
    //k1 = 2;       //编译错误,const修饰int类型,变量k1的值不能被改变

    int p = 1, q = 5;
    int const* p1 = &p;
    //*p1= 2;   //编译错误,const修饰int类型,指针变量p1指向的内存的值不能被改变
    p1 = &q;    //编译通过,const修饰int类型,指针变量p1的指向可以被改变

    int* const p2 = &p;
    *p2 = 3;        //编译通过,const修饰*,指针变量p2指向的内存的值可以被改变
    //p2=&q;        //编译错误,const修饰*,指针变量p2的指向不能被改变

    const int* p3 = &p;     //const左边没有东西,修饰右边的int类型
    //*p3 = 4;              //编译错误,const修饰int类型,指针变量p3指向的内存的值不能被改变
    p3 = &q;                //编译通过,const修饰int类型,指针变量p3的指向可以被改变

    
    const int* const p4 = &p; //或者写成 int const * const p4 = &p;
    //*p4 = 4;      //编译错误,第一个const修饰int类型,第二个const修饰*,指针变量p4的指向不能被改变,指针变量p4指向的内存的值不能被改变
    //p4 = &q;      //编译错误,第一个const修饰int类型,第二个const修饰*,指针变量p4的指向不能被改变,指针变量p4指向的内存的值不能被改变

    return 0;

}

再来看例2:

void MyClass::testfunc() const
{
//MyClass是一个类,testfunc是该类的成员函数,imyc是该类中int类型成员函数
//在该函数中修改类成员变量的值:
//imyc = 5;//编译错误,const修饰类成员函数,则在该函数中,不可更改该类的成员变量的值
}

最后来看例3:

 const int* func1()
 {
     int* ik = new int(5);
     return ik;
 }
//讲解:
//func1函数的返回值为const int*类型,
//const修饰int类型,所以该返回值(即int*指针指向的内存)的值是不能被改变的。

以上就是本次的分享了,欢迎大家一起评论学习。

此博主在CSDN发布的文章目录:【我的CSDN目录,作为博主在CSDN上发布的文章类型导读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

futureCode.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值