Quote Originally Posted by stahta01
I would say a do/while loop just as correct as a while loop; instead of more appropriate.

The counter implies to me that in time it might be used to end the loop; but, whether on top or bottom is not know at present.
But, it also implies a for loop might be just as correct in this case.
If we're only talking about correctness for the structure used to implement an infinite loop, then all four of these are equally correct:
Code:
for (;;)
{
    /* ... */
}
Code:
while (1)
{
    /* ... */
}
Code:
do
{
    /* ... */
}
while (1);
Code:
forever:
    /* ... */
    goto forever;
But the first one was canonical from the time when compilers might not properly optimise using a constant as the condition of a loop; the second one is probably most common these days; the third and fourth are rare.

If we're talking about appropriate, then the first two are good because they make it immediately clear that the loop is an infinite loop. The third is not so good because the condition comes at the end, which is fine for a normal do while loop because that is how the logic flows, but here it is a disadvantage. The fourth requires you to come up with a label, you only can be sure that it is an infinite loop when you spot the goto at the end, and then there's the argument that a loop statement should generally be preferred to a label + goto.