Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
242 views
in Technique[技术] by (71.8m points)

c - for loop missing initialization

I've seen

for(;;)

and

for ( ; *s != ''; s++)

Why is it blank like that. Thanks.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The for statement works like:

for (initialization; test-condition; update)

And any or all of those three can be omitted (left blank). So:

  • for (;;) is an infinite loop1 equivalent to while (true) because there is no test condition. In fact, for (int i=0; ;i++) would also be an infinite loop1.

  • for ( ; *s != ''; s++) is a loop with no initialization. s will point to the beginning of (probably) a string and is incremented until it reaches the null character '' denoting end-of-string. This essentially means loop through all characters of the string s

1 The loop will still be interrupted if there's a break statement in the loop body, or a call to exit(), etc...


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...