gpt4 book ai didi

c - 指针和 const 变量

转载 作者:行者123 更新时间:2023-11-30 15:25:35 26 4
gpt4 key购买 nike

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com