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

Discussion

What is the output of this C code?   

 int main()
    {
        int a = 1, b = 1, c;
        c = a++ + b;
        printf("%d, %d", a, b);
    }

 

  • A.a = 1, b = 1
  • B.a = 2, b = 1
  • C.a = 1, b = 2
  • D.a = 2, b = 2

Answer: B

Correct answer: a = 2, b = 1

c = a++ + b; uses the old value of a, so c becomes 2, and the side effect then makes a equal to 2. b is only read, so it stays 1. The printed values are those of a and b, not of c.

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

Post your comment

Please log in or register to post a comment.