const修饰指针时的不同表现

长路尽处有灯火~ / 2025-01-25 / 原文

#include <iostream>
int main(){
    int x=10;
    int y=100;
    const int *p=&x;
    int *const p2=&x;
    const int * const p3=&x;

    printf("p->value: %d\n",*p);
    printf("p2->value: %d\n",*p2);

    //p=&y;//可以修改p中的内容即修改p的指向
    //*p=20;//不能改变指向地址对应的内容
    //*p2=20;//const修饰的是指针,
    //p2=&y;//不能修改p2的指向,即p2中的数据
    printf("p->value: %d\n",*p);
    printf("p2->value: %d\n",*p2);
    *p3=20;//既不能修改p指向数据的内容
    p2=&y;//也不能修改指向
    printf("p3->value: %d\n",*p3);
    return 0;
}