in reply to strange "for " statement

This is very similar to the for-loops used in C to handle linked lists. IIRC, the syntax would look something like:
for (temp = head; temp; temp = temp->next) { // Do stuff here with temp }

For-loops only going from 0->N is actually a common, but limited subset of the for-loop. Remember, for-loops and while-loops are interchangeable. The above for-loop would be written as a while-loop as such:

temp = head; while (temp) { // Do stuff here with temp temp = temp->next; }

------
We are the carpenters and bricklayers of the Information Age.

The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6

... strings and arrays will suffice. As they are easily available as native data types in any sane language, ... - blokhead, speaking on evolutionary algorithms

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.