C++ T *const与T const*

21 阅读1分钟

T *const ,箭头是不可修改。

指针指向不可修改,比如this->.

const T*,数值不可修改。

指向常量不可修改。(准确来说是不能通过这个指针修改数值。)

#include <iostream>
using namespace std;

int main() {
    //定义一个变量
    int num = 10;
    // 定义一个指向常量的指针 p_const
    const int * p_const = &num; //指向上面那个变量。
    
    //那么,其实这个num变量可以通过第二次赋值修改取值。
    //但是不能经由 p_const 修改 num 的取值。
    num = 20; //num 取值就修改为20.
    // *p_const = 20 ; // 程序报错。
    
    //再声明一个普通指针 ptr 指向 num,
    //可以通过 ptr 修改 num 的取值。
    int * ptr = &num;
    *ptr = 40; // num的取值就修改为40.
    
    return 0;
}

const T* const 箭头和数值都不可修改。