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

Discussion

What is the output of this C code?   

int main()
    {
        int i = 0;
        int x = i++, y = ++i;
        printf("%d % d\n", x, y);
        return 0;
    }

 

  • A.0, 2
  • B.0, 1
  • C.1, 2
  • D.Undefined

Answer: A

Correct answer: 0, 2

The comma separating two declarators is a sequence point, so the two initialisations happen strictly in order and nothing here is undefined. x = i++ takes the old value 0 and leaves i at 1; then y = ++i makes i 2 and gives 2.

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

Post your comment

Please log in or register to post a comment.