18 12
发新话题
打印

[C]在for循环使用变量出现问题

我回LINUX下在摸索摸索吧,谢谢各位!      

TOP

在第一次循环完毕后将变量置为0      

TOP

正是无法置零      

TOP

你的意思是下面的吗?+ [+ O8 p1 V0 |% \; K' \
for(i=0;i<10;i++)
: [7 H: V, n9 f; Q2 r{
0 L6 h3 a2 K+ ?9 y& Y+ g, M, l...+ R' W5 U* X9 l- A9 _4 u. L
}
1 R% @* |! j5 j; @...
% l6 s. H+ E1 B& Y$ d3 z- Xfor(i=0;i<10;i++)//程序走到这里时i应该等于10
# \& R' |- K3 A9 o* D{6 M5 n3 H" v  f
//程序进入循环,第一次i应该等于0,但你的意思是程序根本进不来这个循环,因为i没有被赋0
7 M% a5 q4 S. Z8 s6 X0 A" {...
( ~  c1 h* \2 b4 H  {- W- t, Z4 u}      

TOP

真是奇怪了,楼主用的是哪个版本的GCC?
# _7 k* a# K! n: v: _
, n1 u; z1 Q* l9 x  R/ f- Y9 p你写成
6 y& V4 `0 F* z[CODE]
" i- t  j8 i3 k: Nfor (int i = 0; i < 10; i++)! b3 k0 x4 C! D0 I0 r* d8 {
[/CODE]
2 _" F7 a' z1 R3 W试一试,使用循环内变量应该不会出现你说的问题了。
% i; F* {: o  S. f7 I! R& ^" K0 i6 I5 i* D! h, K: I# [
写成
3 S+ E4 o2 E1 T7 s5 E  O[CODE]0 j0 U' p; C# W! z+ F. C5 P' |9 j- s& h; h
int i;; w1 ~. ?9 z9 |8 V% Z$ d# q
for (i = 0; i < 10; i++)
/ N4 g7 ]5 m( ^, e+ l[/CODE]6 O- t7 W" Y- ~9 E+ h6 t; E( Q/ X
是使用的循环外变量,至于你说的第二次循环,循环变量没有赋初值的现象应该是Bug。  d+ @) l# S$ k4 E' r, I* x
另外想看看你的GCC配置和编译优化指令,我估计是过度优化产生循环展开了,那可就是你的问题了。      
我是用双手打天下的程序员。

TOP

不要贪图省事不加{}      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

真的是这样......- G; H: d- }/ ~) p
谢谢标志兄的解答!      

TOP

这个GCC真奇怪,版本是4.1.1 20061011      

TOP

 18 12
发新话题