【C++】基础 | 常量const

【C++】基础 | 常量const,第1张

【C++】基础 | 常量const

关于C++ const 的全面总结

C++ const 和 constexpr 的区别?

  • 常量必须初始化,一旦初始化后就不能被修改

普通常量
    //普通常量定义,必须初始化
    int const a1 = 100;
    const int a2 = 100;

    //const | cnstexpr
    //const --- 只保证运行时不被修改 可以在运行后再初始化
    //constexpr --- 编译期即可算出来 必须编译时就初始化
    const int i = 10;
    int j = 20;
    const int j1 = j + 10;
    // constexpr int j2 = i+10; // 正确
    // constexpr int j2 = j+10; //错误 j是变量
常量指针
    int *const p1 = &x;         //指针本身是常量,为顶层const
    const int *p2;              //指针指向的内容是常量,为底层const
    const int *const p3 = &xc; //两者都是常量
    
    *p1 = 5;                   //顶层const,指针地址不能改,但是值可以改
    cout << *p1 << endl;
    // *p2=6;                  //错误,底层const 指针指向的内容不可改
    p2=p3;                     //正确
常量引用
    int y =9;
    const int &yr = y;
    y = 10;
    // yr = 10;  //错误,yr为const引用,不可以通过它修改对应的变量y

C++的常量引用有啥用

    //const引用可以用常量初始化,普通引用不能
    const int &f = 10;
    // int &ff = 10; error
    
  	//有啥卵用?---- 函数有时需要临时对象  
    //如:fun(int &a)  fun(1)× -----> fun(const int &a)  fun(1)√
类与对象

【C++】类与对象 | 常对象与常对象成员

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4654086.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-06
下一篇2022-11-06

发表评论

登录后才能评论

评论列表(0条)

    保存