gpt4 book ai didi

c++ - 使用 const int* const 指针指向一个 int

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

我有点不明白。在下面的代码中,我定义了一个整数和一个常量整数。

我可以让一个常量指针 (int* const) 指向一个整数。见第四行代码。

同一个常量指针(int*const)不能指向一个常量整型。见第五行。

指向 const (const int* const) 的常量指针可以指向一个常量整数。这就是我所期望的。

但是,同一个 (const int* const) 指针是允许指向一个非常量整数的。见最后一行。为什么或如何可能?

int const constVar = 42;
int variable = 11;

int* const constPointer1 = &variable;
int* const constPointer2 = &constVar; // not allowed
const int* const constPointer3 = &constVar; // perfectly ok
const int* const constPointer4 = &variable; // also ok, but why?

最佳答案

int const constVar = 42;  // this defines a top-level constant
int variable = 11;

int *const constPointer1 = &variable;

int *const constPointer2 = &constVar;//不允许,因为您可以使用它更改常量

const int *const constPointer3 = &constVar;//完全没问题。在这里你不能以任何方式改变 constVar 。它是一个低级常量。

const int *const constPointer4 = &variable;//也可以,因为它说您不能使用此指针更改值。但您可以更改值,如 variable=15 。

*constPointer4=5;//你得到只读位置的错误分配。因为该指针是常量并指向只读内存位置。

关于c++ - 使用 const int* const 指针指向一个 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14779776/

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