gpt4 book ai didi

c++ - C++ 中 const 自动指针的行为

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

<分区>

This answer声称 const auto 指针的行为与 const “常规”(即非自动)指针相同,这是我所期望的。

但是,下面的代码编译并输出100:

int n{ 99 };
const auto nPtr = &n;
++(*nPtr);
std::cout << n << '\n';

为了更深入一点,我检查了所有 4 种指针的类型,这是我得到的结果:

代码

int n{ 99 };

int* intPtr = &n;
const int* intConstPtr = &n;

auto autoPtr = &n;
const auto autoConstPtr = &n;

std::cout << "intPtr: " << typeid(intPtr).name() << '\n';
std::cout << "intConstPtr: " << typeid(intConstPtr).name() << '\n';

std::cout << "autoPtr: " << typeid(autoPtr).name() << '\n';
std::cout << "autoConstPtr: " << typeid(autoConstPtr).name() << '\n';

输出

intPtr: int * __ptr64

intConstPtr: int const * __ptr64

autoPtr: int * __ptr64

autoConstPtr: int * __ptr64

所以编译器似乎完全忽略了带有自动指针的 const 关键字。有谁知道这是为什么吗?

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