gpt4 book ai didi

c++ - 自动定义中带有另一个的隐式指针变量

转载 作者:行者123 更新时间:2023-11-27 23:48:03 25 4
gpt4 key购买 nike

为什么不能将隐式类型修饰符 *(指针)与另一个具有相同基类型的变量一起定义?

int i = 1;
auto ip = &i; // fine
auto *ip2 = &i; // fine

// error: inconsistent deduction for ‘auto’: ‘int*’ and then ‘int’
// auto ip3 = &i, ir = i;
// auto ip4 = &i, ival = i;

auto *ip5 = &i, &ir2 = i; // fine
auto *ip6 = &i, &ival2 = i; // fine

我通常更喜欢更明确的代码和使用 *& 来增加可读性和意图。在这里我什至会每行定义一个变量。但在这种情况下,我想知道为什么在 ip3ip4.

这是安全措施还是约束?

最佳答案

在您尝试使用它的上下文中没有“基本类型”这样的东西; int* 是不同于 int 的类型,period.

auto 必须在整个多变量声明中“解析”为相同的类型,否则通常会不清楚您想要哪一个(考虑转换)。

关于c++ - 自动定义中带有另一个的隐式指针变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48976656/

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