藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 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.



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com