gpt4 book ai didi

C 中的 const 和指针

转载 作者:太空狗 更新时间:2023-10-29 16:27:22 25 4
gpt4 key购买 nike

将 const 与指针一起使用可以通过使用相关指针取消引用来使指针不可修改。但为什么我也不能修改指针未直接指向的内容?

例如:

int a = 3;
const int* ptr = &a;
*ptr = 5;

不会编译。但是为什么

*(ptr + 2) = 5;

也不编译?我没有改变指针指向的内容。
所以我们必须说以这种方式将 const 与指针一起使用不仅使指针指向的内容不可修改(通过取消引用指针),而且还有其他什么,我们使用指针获得的地址是什么?

我知道在示例中我试图访问未分配的内存,但这只是为了讨论。

最佳答案

ptr +2ptr 具有相同的类型,即指向 const 对象的指针。

指针算法假定所指向的对象是所有相同基类型的数组。此类型包括 const 限定条件。

关于C 中的 const 和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27588918/

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