Machine-translated by Google. Questions are authored in English.
Top

Discussion

What is the output of this C code?    

void main()
    {
        char a = 'a';
        int x = (a++)++;
        printf("%d\n", x);
    }

 

  • A.6
  • B.Junk value
  • C.Compile time error
  • D.7

Answer: C

Correct answer: Compile time error

The result of a++ is a value, not an object, so it is not an lvalue - and ++ requires a modifiable lvalue to operate on. (a++)++ therefore fails to compile. The same reasoning rules out (a + 1)++ or 5++. A single (a)++ would have been fine, leaving x equal to 97 and a equal to 'b'.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.