Das geht übrigens idiomatischer mit "while (1)". Edit: Ich habe gerade gesehen, dass
@cwriter dir diesen Code oben vorgeschlagen hat

Er hat es dir wahrscheinlich einfacher machen wollen, um folgende Erklärung sich zu sparen: Vergleiche werden in C zu einem int ausgewertet.* Wahre Vergleiche werden zu einer Zahl, die nicht 0 ist ausgewertet, klassischerweise 1. Also sowas wie "1 == 1" wird zu 1 ausgewertet, während "42 == 84" zu "0" ausgewertet wird. Die Schleife wiederholt solange, wie das Argument ungleich 0 ist.
*) Ob das wirklich ein int ist oder ein anderer numerischer Datentyp, darüber bin ich mir gerade nicht sicher. Also meinen Absatz oben nicht für den C-Standard halten

Aber sonst sollte er komplett richtig sein.