关于多重定义,来人啊,救命啊
#include<iostream>
using namespace std;
int main()
{
int i = 2;
int array[11];
for(int i = 0; i <= 10; i++)
array[i] = 100;
for(int i = 0; i <= 10; i++)
cout << array[i] << endl;
}
这个为什么没有造成多重定义……………………难道循环看做是函数??
[解决办法]
int main()
{
int i = 2; //i定义一次
int array[11];
for(int i = 0; i <= 10; i++) //i定义两次
array[i] = 100;
for(int i = 0; i <= 10; i++) //i定义三次
cout << array[i] << endl;
}
int main()
{
int i;
int array[11];
for(i = 0; i <= 10; i++)
array[i] = 100;
for(i = 0; i <= 10; i++)
cout << array[i] << endl;
for(int i = 0;;){
……
}
}
这里有两个i,第一个i的生命周期是fun函数,第二个i的生命周期是for循环内部,如果你在for循环内使用i,优先只用循环内部的i,如果没有在向外找。
这就是你上面的代码不出来多重定义的原因。
[解决办法]
for循环里面的i的生命周期只是在循环内,
等同 以下语句:
int i =2;
{
int i =0;
.....
}
不过vc6的话lz这样写会报错
[解决办法]
4楼正解
[解决办法]