gpt4 book ai didi

c++ - 将 const int 分配给指向 int 的 const 指针是非法的吗?

转载 作者:行者123 更新时间:2023-11-30 00:53:05 25 4
gpt4 key购买 nike

为什么以下是非法的?

extern const int size = 1024;

int * const ptr = &size;

当然应该允许指向非 const 数据的指针指向 const int(而不是相反)?

这是来自 C++ Gotchas 项目#18

最佳答案

如果你真的是指其中之一

const int * const ptr = &size; 
const int * ptr = &size;

这是合法的。你的是非法的。因为这不是你能做的

int * ptr const = &size;
*ptr = 42;

呸,你的 const 刚刚被改变了。

让我们反过来看:

int i = 1234; // mutable 
const int * ptr = &i; // allowed: forming more const-qualified pointer
*i = 42; // will not compile

我们不能在这条路上造成伤害。

关于c++ - 将 const int 分配给指向 int 的 const 指针是非法的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17392920/

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