c++的const限定符的使用实现全解

来源:互联网 发布:有什么社交软件 编辑:程序博客网 时间:2024/06/05 14:06
<span style="font-size:18px;"></pre><pre name="code" class="html"><p><span style="font-size:18px;">     引用即是某一对象的别名,引用的类型必须和其所引用的对象的类型一致,在引用声明时必须对其初始化。引用将和它的初始值对象一直绑定在一起,无法令引用重新绑定到另外一个对象上。</span></p><p><span style="font-size:18px;">     const的引用,允许为一个常量引用绑定非常量的对象、字面值、甚至是一个表达式。但const引用不允许通过其引用修改其绑定的对象,但允许通过其他方式对所绑定对象的修改。</span></p><p><span style="font-size:18px;"></span></p><p><span style="font-size:18px;">     const与指针,const int *ptr指向常量的指针,不允许通过指向常量的指针修改其所指对象的值,允许指向非常量的值和修改指向。const int *const ptr指向常量的常量指针,不允许修改指向。</span><pre name="code" class="cpp"></span>


备注:非常量引用或指针不能引用或指向常量的引用或指针。const是对给定类型的修饰。

</pre><pre name="code" class="cpp">#include <iostream>using namespace std;int main(){    int i = 2;    const int j =42;    const int &r1 =i;    const int &r2 = r1*2;    int &r3 = i;    //r1   =42;          // r1是对常量的引用,不能用作修改所绑定的对象    //int &r3 = r1 *2 ;  //非常量引用不能指向常量引用    cout<<&i<<endl;    cout<< &r1<<endl;    cout<< &r2<<endl;    cout<< &r3<<endl;    cout<<i<<endl;    cout<<r1<<endl;    cout<<r2<<endl;    cout<<r3<<endl;    i =6;     cout<<&i<<endl;    cout<< &r1<<endl;    cout<< &r2<<endl;    cout<< &r3<<endl;    cout<<i<<endl;    cout<<r1<<endl;    cout<<r2<<endl;    cout<<r3<<endl;    double pi =3.14;    const double *ptr=π     cout<<&ptr<<endl;    cout<<*ptr<<endl;    double  d = 6.2;    ptr = &d;         //允许指向常量的指针指向一个非常量的值,并且可以修改指向常量指针的指向    cout<<&ptr<<endl;    cout<<*ptr<<endl;     double pi1 =6.28;    const double *const ptr1=π    cout<<&ptr1<<endl;    cout<<*ptr1<<endl;    double  d1 = 6.2;    //ptr1 = &d1;               //不允许修改指向    ptr = ptr1;    cout<<&ptr<<endl;    cout<<*ptr<<endl;    return  0;}


}
0 0