I've written infinite loops like this numerous times over the years in both C and C++, but today is the first time I really thought about it -- why is it an infinite loop when the condition clause is empty? One would expect you'd have to write something like
The C Standard explicitly describes this behavior of
Both clause-1 and expression-3 can be omitted. An omitted expression-2 is replaced by a nonzero constant.