C ++,是循环控制变量,循环内的这个变量是一样的吗?

时间:2018-02-06 23:23:44

标签: c++

在此代码中:

for(int i=0; i<key; i++){
        int counter=((len)/div);
}

循环控制变量int i是否与int counter相同?如果没有,为什么int counter能够在没有被循环之前被初始化的情况下被使用?

下面的完整功能代码。

void splitEncoded(string strarray[], int key, string msg){
    int cycle= (2 * key)-2;
    int div=cycle;
    int len=msg.length();
    int remainder=0;
    int pos=0;
    for(int i=0; i<key; i++){
        int counter=((len)/div);

        if(cycle!=0 && remainder!=0){
            counter= 2*counter;
            if((len%div)>=(div-(i-1))){
                counter+=2;
            } 

            else if((len%div)>i){
                counter++;
            }
        }  

        else if(((len)%div)>i){
            counter++;
        }

        strarray[i]=msg.substr(pos,counter);
        pos+=counter;
        cycle=cycle-2;
        remainder+=2;

    }

}

1 个答案:

答案 0 :(得分:0)

  

循环控制变量“int i”是否与“int counter”相同?

呃,不,变量不一样。他们有不同的名字......

  

如果没有,为什么“int counter”能够在没有被循环之前初始化的情况下使用?

因为它是在循环内初始化的。

int counter=((len)/div);

上面的行在使用操作counter的结果初始化的循环的每次迭代中创建一个名为((len)/div) new 变量。