Fra*_*sco 0 c++ for-loop c++11
我不明白为什么这个for循环工作
void managingTable(unsigned char table[256][256][1])
{
for (unsigned int x = 0; x <= 255; x++)
{
for (unsigned int y = 0; y <= 255; y++)
{
doSomethingWithTable();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当y达到255但在x上没有迭代时,这不起作用
void managingTable(unsigned char table[256][256][1])
{
unsigned int x = 0;
unsigned int y = 0;
for (x; x <= 255; x++)
{
for (y; y <= 255; y++)
{
doSomethingWithTable();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这也行不通:
void managingTable(unsigned char table[256][256][1])
{
unsigned int x = 0;
unsigned int y = 0;
for ( ; x <= 255; x++)
{
for ( ; y <= 255; y++)
{
doSomethingWithTable();
}
}
}
Run Code Online (Sandbox Code Playgroud)
您的第一个示例y
为每次迭代声明一个新的从0开始x
.
您的第二个和第三个示例不会重置y
迭代之间的值x
,因此只会y
执行第一个循环.y
跳过剩余的循环,因为y
它已经等于256.
改变你的第二个例子如下:
void managingTable(unsigned char table[256][256][1])
{
unsigned int x = 0;
for (x; x <= 255; x++)
{
unsigned int y = 0;
for (y; y <= 255; y++)
{
doSomethingWithTable();
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
65 次 |
最近记录: |