То, чего нет в условном выражении, не должно появляться и в других частях оператора for
Так как оператор for предназначен для того, чтобы собрать инициализирующую, условную и инкрементирующие части цикла в одном месте, так чтобы вы могли, взглянув, понять, что происходит, то вы не должны загромождать оператор for
материалом, который не имеет отношения к циклу, иначе вы лишите смысла всю эту конструкцию. Избегайте подобного кода:
int *ptr;
// ...
for( ptr = array, i = array_size; --i = 0; f(ptr++) )
;
который лучше сформулировать так:
int *ptr = array;
for( i = array_size; --i = 0 ; )
f( ptr++ );