What is the output of this C code?
int main()
{
int i = 0;
int j = i++ + i;
printf("%d\n", j);
}
Answer: A
Correct answer: 1
With i starting at 0, i++ contributes 0 and leaves i as 1, and the second operand then reads 1, giving \(0 + 1 = 1\). Strictly this expression reads i in one operand while modifying it in the other with no sequence point between, which the standard leaves undefined; 1 is what mainstream compilers produce, but the expression should be split into two statements.
Please log in or register to report this question.