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
)现在都是只读的。关于c - 指针和const变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27778160/