[Info-vax] decrementing & for loops in C

FrankS sapienza at noesys.com
Thu Jan 8 08:07:17 EST 2009


On Jan 8, 8:03 am, vax... at chemie.uni-konstanz.de wrote:
> Hi,
>
> I tried to run one of the example found on Jim Duff's homepage and
> found a behavior of for loops written in C:
>
> int main (void) {
>
> int i,sum=0,n=10;
>
>     (void)printf ("Starting countdown loop...\n");
>     (void)fflush (stdout);
>     for (i = n; i = 0; i--) {
>         (void)printf (" i: %i\n",i);
>     }
>     (void)printf ("done.\n");
>
>     (void)printf ("Starting normal loop...\n");
>     (void)fflush (stdout);
>     for (i = 1; i <= n; i++) {
>         (void)printf (" i: %i\n",i);
>     }
>     (void)printf ("done.\n");
>
> }
>
> Here is the output:
>
> r SYSWRITE_TST
> Starting countdown loop...
> done.
> Starting normal loop...
>  i: 1
>  i: 2
>  i: 3
>  i: 4
>  i: 5
>  i: 6
>  i: 7
>  i: 8
>  i: 9
>  i: 10
> done.
>
> So the countdown loop is ignored. g++ under linux behaves the same.
>
> Are there any references that one cannot use decrementation and for
> loop in C?
>
> regards
> Eberhard

The conditional equivalance operator in C is == not =.

Your syntax error occurs in the FOR statement.  You have:

   for (i = n; i = 0; i--)

but it should be:

   for (i = n; i == 0; i--)



More information about the Info-vax mailing list