C++ for循环中的多个声明

C++ for循环中的多个声明,c++,C++,我在我的程序中定义了以下内容 int row; int col; for(int k = 1; k <= sizestr1; k++){ for(row = k, col = 1; (row == 0 && col <= sizestr2); row-- , col++){ //logic here } } 调试后,内部循环中的逻辑似乎无法执行。上述内循环的定义在C++中有效吗?在外循环中,k从1开始向上,因此它永远不会得到0的值。并

我在我的程序中定义了以下内容

int row;
int col;

for(int k = 1; k <= sizestr1; k++){
  for(row = k, col = 1; (row == 0 && col <= sizestr2); row-- , col++){

        //logic here
    }
}

调试后,内部循环中的逻辑似乎无法执行。上述内循环的定义在C++

中有效吗?在外循环中,k从1开始向上,因此它永远不会得到0的值。并且内部循环要求行==0与列row==0一起始终为FALSE。row从不获取值0。你的意思是写第行吗!=0而不是row==0?我想在语法上是有效的,你的编译器怎么说?但很难理解逻辑,例如变量行。假设您有未初始化变量的重要警告,例如给出重要的运行时算法errors@JacekCz行和COL都在内环开始时初始化:行=K,COL=1。@ CIPAPAN同意,必须在半夜不读硬代码;是的,我遗漏了这一点,我想在行值小于0@RRP请看扩展的答案。
int row;
int col;

for(int k = 1; k <= sizestr1; k++){
    for(row = k, col = 1; row >= 0 && col <= sizestr2; row-- , col++){

        //logic here
    }
}
int row;
int col;

for(int k = 1; k <= sizestr1; k++){
    for(row = k, col = 1; col <= sizestr2; row-- , col++){
        if(row < 0)
            break;      // terminate the inner loop

        //logic here
    }
}