gpt4 book ai didi

c++ - 我可以在 for 循环的初始化中声明不同类型的变量吗?

转载 作者:IT老高 更新时间:2023-10-28 12:59:11 39 4
gpt4 key购买 nike

为什么这段C++代码在VS2010下编译不了:

for ( int a = 0, short b = 0; a < 10; ++a, ++b ) {}

虽然这个是:

short b = 0;
for ( int a = 0; a < 10; ++a, ++b ) {}

是否禁止在 for 循环初始化器中声明两个不同类型的变量?如果是这样,您如何解决它?

最佳答案

是的,这是禁止的。就像您不能在一个声明语句中声明不同类型的变量一样(edit:以@MrLister 提到的声明符修饰符为模)。你可以声明结构

for (struct { int a = 0; short b = 0; } d; d.a < 10; ++d.a, ++d.b ) {}

C++03 代码:

for (struct { int a; short b; } d = { 0, 0 }; d.a < 10; ++d.a, ++d.b ) {}

当然当都是0时,你可以完全省略初始化器,写成= { }

关于c++ - 我可以在 for 循环的初始化中声明不同类型的变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8644707/

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