C 语言 常量指针/指针常量

186 阅读1分钟

1. 常量指针(修饰的指针)

常量指针是指指向常量的指针,就是指针指向的是常量,即,它不能指向变量,它指向的内容不能被改变,不能通过指针来修改它指向的内容,但是指针自身不是常量,它自身的值可以改变,从而指向另—个常量。
只能修改地址,也就是说只能换指向类型,不能修改内容 以下两种都是常量指针

    int a = 3;
//    常量指针 const 在前边 
    int const *b = &a;
    const int *b = &a;

赋值

    int a = 3;
//    常量指针 const 在前边
    int const *b = &a;
//    const int *b = &a;
    int d = 6;
    b = &d;
    printf("----------------%d\n", *b);

2. 指针常量(修饰的常量)

指}常量是指指针本身是常量,它指向的地址是不可改变的,但地址里的内容可以通过指针改变。它指向的地址将伴其一生,直到生命周期结束。有一点需要注意的是,指针常量在定义时必须同时赋初值。
只能修改内容,也就是能修改指向的内容,不能重新赋值指向类型

int *const c = &a;
*c = 15;
printf("----------------%d\n", *c);

const 修饰的谁,谁就不能改变
const 在 * 后,那就是指向的类型不能改变,内容可以改变
const 在 * 前,那么指向内容就不能改变,可以修改指向类型