Question 1
int x;
if (x++)
{
printf ("\nASCII value of X is smaller than that of x");
}
Is x assigned here with a garbage value ??
Question 2:
main ()
{
int i;
for (i = 0; i++ < 10;)
{
printf ("%d\n", i);
}
}
Can anyone explain how i++ < 10 works?I mean it should end at 9 why 10
In the first question, you declare x
but you do not assign it, this reserves some memory to hold the value of x, but doesn’t initialize it to a known value. That’s a really bad thing. Then you read it, increment it, and possibly do something.
Since you don’t know what it’s value was before you read it, it is impossible to make an educated guess as to whether your if statement will print anything.
In your second question (please one question per question), you read the value of i, then increment it, and then do the comparison on the read value. Post increment basically means, “increment the value after I read it” and so the new value will be stored, then the comparison made on the old value, and the printf statement below will print the “current, new” value.