指针和const变量

时间:2015-01-05 11:02:01

标签: c pointers

int *const plz;

意味着我不会改变指针指向的位置(即递增或递减地址)

const int *plz

表示我不会通过指针

更改指针指向的变量
const int* const *plz

意味着两者

我有一个问题

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

check_plz(const int *const plz)

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

1 个答案:

答案 0 :(得分:1)

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现在都是只读的。