改名查找?

时间:2014-01-24 09:27:00

标签: c++

我有以下代码,编译器说“'i'的名称查找已经改变了......”。 设置-fpermissive,它可以通过编译器......

for (i=1;i<MAXINUMBER-1;i++)
{
    for (j=i;j>0;j--)
    {
        if (a[j]>a[j-1])
            {
                temp=a[j-1];
                a[j-1]=a[j]; a[j]=temp;
            }
        else
            break;
    }
}

但我认为我没有改变'我'...... 那么我错过了什么? 非常感谢你们......

1 个答案:

答案 0 :(得分:0)

很简单,

//the int i declaration below is like it's within the {} block
for (int i = 0; i < 10; i++)
{
    //do something
}

//i is out of scope here, you can't use i any more, u must redeclare
//int i = 5; //ok!
//for (int i = 0; i < 20; i++) //ok!
for (i = 0; i < 20; i++) //no, you can't do this

解决问题的两种方法,

一,把我的宣言放在外面

int i;
for (i = 0; i < 10; i++)

二,再次申报

for (int i = 0; i < 10; i++)