为什么我们不能在 for 循环中声明两个变量?
Why can't we declare two variable in a for loop?
下面的
代码在运行时会生成错误,但是如果我在循环外声明至少一个变量,则代码工作正常。为什么我不能在循环本身中声明两个变量?
错误:
#include<iostream>
#include<conio.h>
using namespace std ;
int main()
{
for(int j=0,int i=0;i<4&&j<2;i++,j++)
{
cout<<"Hello"<<endl ;
}
getch() ;
return 0 ;
}
工作正常:
#include<iostream>
#include<conio.h>
using namespace std ;
int main()
{
int i ;
for(int j=0,i=0;i<4&&j<2;i++,j++)
{
cout<<"Hello"<<endl ;
}
getch() ;
return 0 ;
}
可以,但是在单个声明中声明两个变量的表示法如下所示:
int j=0, i=0;
没有第二个int
.
(这实际上是你的第二个版本正在做的事情;你可能认为它正在分配已经声明的i
,但实际上它正在声明一个新的,其范围是for
循环。
因为这就是标准定义语法的方式。这个想法没有什么特别的"错误",但显然已经决定在初始化部分只能有一个声明。
如果要声明多个变量,请使用逗号枚举它们(但这样只能声明相同类型的变量):
for (int i = 0, j = 10; i < 10; i++, j--)
但是,我不确定您是否应该这样做。在某一点之后,这演变成不可读的混乱。
请注意,给定的答案"仅"处理创建相同类型的多个变量。
如果出于某种奇怪的原因,您需要执行多种类型,这是有效的(尽管很糟糕):
for(struct {int a; double b} loop = {0, 1.5}; loop.a < loop.b; loop.a++)
{
// Awful hacks
}
相关文章:
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 命令行参数,cant 或两个变量
- 在 for 循环中更新两个变量时遇到问题C++
- C++ 编译时在两个变量之间交替
- C++ 如何在包含两个变量的结构中存储与变量不同数量的值?
- 为什么一个接一个声明的两个变量在内存中不相邻?
- 为什么动态分配的两个变量的内存位置不是连续的?
- 是否可以在C++中使用宏交换两个变量的出现?
- 计算机如何分配两个变量,我们如何计算两个变量之间的距离?
- 正确证明C 中的两个变量合理(我想将它们视为一个变量)
- 可视C 编译器将相同的存储位置提供给两个变量
- 尝试使用 {} 和 std::make_pair() 交换两个变量时的行为不同
- 在rootframework中的根文件中编写两个变量
- 最短路径,带有两个变量
- 加入两个变量和LCD打印
- 在循环中声明两个变量以逆转字符串?在C 中
- 具有两个变量的"for"循环,一个变量每次迭代递增,每隔一次迭代递增
- 如何在C++中使用一个类中两个变量的值
- 仅在C 中的一个变量上,两个变量函数的数值集成(使用数值配方库)
- 如何在我存储的两个变量之间生成随机数