const 与 常量

Posted on 2019-05-31 23:30  金色的省略号  阅读(267)  评论(0编辑  收藏  举报

  一、const 常量 (常变量)

const int a  = 5; // a是一个int常量,是符号常量(/命名常量), 5是字面常量

    int b;
    cin >> b;
    const int a = b; //a 不是常量,是常变量
    // int arr[a];  // error

C语言,const修饰的变量被称为常变量,const int a;  定义时可以不初始化; c++语言,定义的同时要初始化,用字面量初始化为常量,用变量初始化,为常变量

  二、常量指针

const int* b = &a;    //b是一个int指针可以指向 int 常量   int 变量,但是,不可以通过指针的间接引用来修改其所指向的内容(值)

// 常量指针,是指向常量的指针不是常量,只是,不可以通过指针的间接引用改变其指向的内容。

// const int* b = &a;   也可以写成 int const * b = &a;  是等价的

  三、指针常量

int x[5];  int* const c = x; //c是一个int指针常量,指向x,  不可以指向其他

//指针常量是常量

  C++中,const 是只读模式,可以绑定右值(临时对象是右值),绑定右值111,const int &x = 111;,在类成员函数 () 后加 const ,函数不可以改变成员变量的值。