作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么不能将隐式类型修饰符 *
(指针)与另一个具有相同基类型的变量一起定义?
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
我通常更喜欢更明确的代码和使用 *
和 &
来增加可读性和意图。在这里我什至会每行定义一个变量。但在这种情况下,我想知道为什么在 ip3
和 ip4
.
这是安全措施还是约束?
最佳答案
在您尝试使用它的上下文中没有“基本类型”这样的东西; int*
是不同于 int
的类型,period.
auto
必须在整个多变量声明中“解析”为相同的类型,否则通常会不清楚您想要哪一个(考虑转换)。
关于c++ - 自动定义中带有另一个的隐式指针变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48976656/
我是一名优秀的程序员,十分优秀!