Expressions - Programming

Q1:

What will be the output of the program?
#include<stdio.h>
int main()
{
    int i=2;
    printf('%d, %d\n', ++i, ++i);
    return 0;
}

A 3, 4

B 4, 3

C 4, 4

D Output may vary from compiler to compiler

ANS:A - 3, 4

The order of evaluation of arguments passed to a function call is unspecified. Anyhow, we consider ++i, ++i are Right-to-Left associativity. The output of the program is 4, 3. In TurboC, the output will be 4, 3. In GCC, the output will be 4, 4.