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...
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…