const关键字

const是一个类型修饰符,相当于java中的 final ,具体的就不写了~

需要注意的:

//强制修改
    const in a=10;
    printf("%d
",a);
    int *p=&a;
     *p=100;
    printf("a=%d
  *p=%d
",a,*p);
//这里是一个无解的问题, 打印a的数字时 是10 打印 p的数组时是100
//a和 p的地址完全一致, int 占4个字节,即使单字节的地址打印也是一样的
//这里就作为一个小彩蛋好了~目前细究没结果,如果有朋友能找到原因也可以告诉我

当定义指针时

int a=10;
int b=20;

//1.const作用于指针变量,地址指向可以改变,但是地址内的变量不能改变
const int *p =&a;  //给p初始化
                p=&b;   //重新修改p的指向

        *p=1000;//这里报错 

//2.const修饰的指针变量,指针变量指向的变量值可以变,指向不能变
    int * const p2=&a;
        *p2=2000;//值可以变
        p2=&b;//p2的指向不能变

//3.const 修饰的指针变量的指向和值都不能变
    const int *const p3=&a;

  

原文地址:https://www.cnblogs.com/developer-wang/p/4490719.html