Declarations and Initializations - Programming

Q1:

What is the output of the program?
#include<stdio.h>
int main()
{
    union a
    {
        int i;
        char ch[2];
    };
    union a u;
    u.ch[0] = 3;
    u.ch[1] = 2;
    printf('%d, %d, %d\n', u.ch[0], u.ch[1], u.i);
    return 0;
}

A 3, 2, 515

B 515, 2, 3

C 3, 2, 5

D None of these

ANS:A - 3, 2, 515

printf('%d, %d, %d\n', u.ch[0], u.ch[1], u.i); It prints the value of u.ch[0] = 3, u.ch[1] = 2 and it prints the value of u.i means the value of entire union size. So the output is 3, 2, 515.