gpt4 book ai didi

c++ - auto* 的类型推导规则是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 23:54:02 25 4
gpt4 key购买 nike

auto* 的类型推导规则是什么?

考虑以下几点:

int x = 64;
int* px = &x;

auto* v1 = &x; // auto => ??? ok v1 is int* ...
auto* v2 = px; // auto => ??? is v2 int* ?
auto* v3 = &px; // auto => ??? is v3 int** ?

如果我们将类型推导分为两个步骤,只是为了澄清我的问题:

  1. 在没有 (*) 的情况下推导“auto”本身的类型 ... 然后
  2. 在添加 (*) 之后推断对象的类型(v1v2v3)

所以我的两个问题是:

  1. 如果没有 (*),auto 会被推导出什么?
  2. v2 将指向 int (int*) 和 v3 指向指针 ( int**) ?

最佳答案

auto 将推导出给定表达式的 cv 限定类型。 auto* 将推导出表达式指向的类型的 cv 限定类型 - 如果表达式是指针 - 否则将无法编译。

对于给定的示例,v 的实际类型将是pointer to int,与v2 相同,对于v3 code> 它将是 指向 int 的指针

如果您的第一个示例写成 auto v1 = &px,则 v1 的类型将保持不变。

关于c++ - auto* 的类型推导规则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36652180/

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