|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
如何使局部變量生效!!!
環境:vc++ 6.0
如何使for語句的局部變量生效!
例如:
int i=-1;全局變量
for(int i=0;i<33;i++)
{
......
}
當我編譯時出現錯誤,告訴我i變量需重新定義。
why???如何修改參數! |
如何使局部變量生效!!!
-->
我想你把for循環裡的int i=0 換成 i=0就成了。 |
如何使局部變量生效!!!
不行,會出現同樣的錯誤,但可以將for語句由{}標記為塊語句,這樣就不會出現錯誤,但我想知道如何更改vc++6.0的參數,而不用標記塊語句。 |
如何使局部變量生效!!!
| 如何使局部變量生效!!!
int i=-1;全局變量
for(int i=0;i<33;i++)
{
......
}
如果是在同一函數中的話
那麼就不是全局變量
在函數中
不能定義與局部變量名一樣的 |
如何使局部變量生效!!!
#include<iostream.h>;
void main()
{
const int num=10;
int interval;
int a[num];
for(int i=0;i<num;i++)
a[i]=i+1;
cout<<"pls input the interval";
cin>;>;interval;
for(int i=0;i<num;i++)
cout<<a[i]<<",";
cout<<endl;
int k=1;
int i=-1;
{while(1)
for(int j=0;j<interval;)
{
i=(i+1)%num;
if(a[i]!=0)
j++;
}
if(k==num)break;
cout<<a[i]<<",";
a[i]=0;
k++;
}
cout<<"\nNo."<<a[i]<<"boy's won.\n";
}
: error C2374: 'i' : redefinition; multiple initialization
而改動後就沒有錯誤:
#include<iostream.h>;
void main()
{
const int num=10;
int interval;
int a[num];
{for(int i=0;i<num;i++)
a[i]=i+1;
cout<<"pls input the interval";
cin>;>;interval;}
{for(int i=0;i<num;i++)
cout<<a[i]<<",";
cout<<endl;
}
int k=1;
int i=-1;
{while(1)
{for(int j=0;j<interval;)
{
i=(i+1)%num;
if(a[i]!=0)
j++;
}
if(k==num)break;
cout<<a[i]<<",";
a[i]=0;
k++;
}}
cout<<"\nNo."<<a[i]<<"boy's won.\n";
} |
如何使局部變量生效!!!
我說的重新定義不準確....error C2374: 'i' : redefinition; multiple initialization,但把for語句標記為塊語句就可以了...如何改vc6.0的參數,使for語句的局部變量生效!!! |
如何使局部變量生效!!!
int main ()
{
int i=-1;全局變量
{ //加上這個
for(int i=0;i<33;i++)
{
......
}
}//和這個
}
就可以了。
補充:
哎! 你已經知道了。 |
如何使局部變量生效!!!
感謝樓上的朋友 |
如何使局部變量生效!!!
-->
這個i那裡是全局變量呀?按C語言的默認規定,第一個碰到的為定義的變量自己要定義一下,所以對你後面重新定義int i;當然是重複了呀.加上{}表示那是一個塊,那麼第一i的作用域就局限在{}裡面了.所以能過.你可以加{},也可以改第二的i前面的int. |
| |