const 总结

  1. const 修饰变量、修饰函数参数
    //#include “iostream”
    using namespace std;
    // const 修饰变量
    int main()
    {
    /*
    // 1.
    cout << “第1种情况” << endl;
    int a = 1;
    const int b = a;
    cout << b << endl;
    // b = 4; // b是const修饰 只具有只读属性, 所以不可被修改 Error
    */

    /*
    // 2.
    cout << “第2种情况” << endl;
    int a = 1;
    int b = 2;
    const int* c = &a;
    // const 修饰 int* 所以指针c所指向的数据不可被修改,但是c存储的地址可以被修改
    // *c = 10; // *c 不可被修改,只读
    cout << &a << endl;
    cout << c << endl;
    cout << *c << endl;
    // *c = 100; 不能通过节引用的方法直接修改c
    c = &b; // 可以通过修改指针的地址实现对指针变量的修改,
    cout << c << endl;
    cout << *c << endl;
    */

    /*
    //3.
    // int* const d 表示d存储的地址是常量不可被修改,但是d地址的指向是可以被修改的(通过*解引用实现)。
    int a = 1;
    cout << “第3种情况” << endl;
    int* const d = &a; // const 修饰 d 的存储(即地址),表示d不可变,*d可以修改
    // d = &b; // 试图修改d的内容,因为d是只读的。 Error
    cout << *d << endl;
    cout << d << endl;
    *d = 100; // 修改d的地址的指向
    cout << d << endl;
    cout << *d << endl;
    */

    cout << “第4种情况” << endl;
    int f = 10;
    const int* const e = &f;
    cout << &f << endl;
    cout << e << endl;
    cout << *e << endl;
    int g = 11;
    e = &g; // e只读
    *e = 111; // *e只读

    return 0;
    }

2.const 修饰函数返回值
1. 全局函数
参考const修饰变量。
2. const修饰成员函数
const修饰成员函数,表示该函数不可对成员变量进行修改。除了mutable修饰的成员变量。
例如: const int* add (const int m,int n) const;
第一个const 表示:函数的返回值的指向不可被修改。
第二个const 表示:函数参数m是不可被修改的。
第三个const 例外:这种通常应用在成员函数中,当成员变量不是mutable类型时,表示成员变量不可被修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值