18 12
发新话题
打印

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

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

TOP

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

TOP

正是无法置零      

TOP

你的意思是下面的吗?
! A1 J( x- k7 Ifor(i=0;i<10;i++)
; E( z; K7 N% g; @# q: K* s( J{' S4 H1 d, D: U2 [8 g/ h
...4 ~7 ]7 X3 O- i8 C7 C' o
}
( M/ S2 B7 N' S  N" m2 T) z) Y...' r0 P. b( i# Z( a( w5 q
for(i=0;i<10;i++)//程序走到这里时i应该等于10$ K% l) R8 f2 {, H8 q8 {" Y6 X
{
8 j3 J& i/ p& R/ K* g0 V//程序进入循环,第一次i应该等于0,但你的意思是程序根本进不来这个循环,因为i没有被赋0
" Z# R- n+ m! A: Q* {4 p4 K...3 \, U! Q/ J( Z! ~) J
}      

TOP

真是奇怪了,楼主用的是哪个版本的GCC?
* d5 \+ x( u  B
1 E7 N1 E% T- ~( f' w你写成! O# s- N/ ?) w% C  p  u1 n
[CODE]
9 I, Z( D! S  F+ i2 S! pfor (int i = 0; i < 10; i++)5 y% m2 c* k4 x/ \
[/CODE]
9 q7 c) L" Q6 ]  `) Y7 b试一试,使用循环内变量应该不会出现你说的问题了。
7 H, z% e1 N/ J/ A/ k' R
9 P# g( Q* `1 \7 S; x# c写成
9 B) [6 u, _5 r) \- s% x[CODE]
1 k+ I& M& }5 D" r+ ~* N# Hint i;  V9 m* S4 x/ J' ~! b
for (i = 0; i < 10; i++)
; v7 `2 T" q( i$ k8 A[/CODE]
4 {/ E8 b2 K4 [: u% J是使用的循环外变量,至于你说的第二次循环,循环变量没有赋初值的现象应该是Bug。" A0 q9 O3 a8 r3 E( v0 F
另外想看看你的GCC配置和编译优化指令,我估计是过度优化产生循环展开了,那可就是你的问题了。      
我是用双手打天下的程序员。

TOP

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

TOP

真的是这样......
# r6 }7 }- [* N- k谢谢标志兄的解答!      

TOP

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

TOP

 18 12
发新话题