int *const plz;
意味着我不会改变指针指向的位置(即递增或递减地址)
const int *plz
表示我不会通过指针
更改指针指向的变量const int* const *plz
意味着两者
我有一个问题
我刚看到一个看起来像这样的函数
check_plz(const int *const plz)
这究竟是什么意思,除了地址不能递增或递减,如果它也意味着我不能改变变量,为什么第二个*操作数丢失? 谢谢
答案 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
现在都是只读的。