指针和常量变量

pointers and const variable

int *const plz;

表示我不会更改指针指向的位置,(即增加或减少地址)

const int *plz

表示我不会通过指针改变指针指向的变量

const int* const *plz

表示两者

我有一个问题

我刚看到一个看起来像这样的函数

check_plz(const int *const plz)

这到底是什么意思,除了不能递增或递减地址之外,如果这也意味着我不能更改变量,为什么第二个 * 操作数丢失了? 谢谢

const int *const plz

这里plz是一个指向常量int变量的常量指针

以下示例可能对您有所帮助

const int *const *plz

这里plz是一个双指针,所以它可以保存一个指针的地址。

#include <stdio.h>

int main(void) {
    const int a=10;
    const int *const p = &a;
    const int *const *q = &p; 
    printf("%d\n",*p);
    printf("%p\n",(void *)p);
    printf("%p\n",(void *)*q);
    printf("%d\n",**q);

    return 0;
}

因此,您使用的每个变量,如 p q a 现在都是只读的。