Predict the output of the following C program. [CO1, 3M]

#include< stdio.h >
struct Node{
char x,y,z;
};
int main(){
struct Node p = {'1', '0', 'a'+2};
struct Node *q = &p;
printf ("%c, %c", *((char*)q+1), *((char*)q+2));
return 0;
}

Output: 0, c

Explanation:
- The structure Node contains three characters x, y, and z.
- In the main function, a structure Node variable p is declared and initialized with values '1', '0', and 'a'+2 which is equal to 'c'.
- A pointer q of type Node is declared and assigned the address of p.
- In the printf statement, *((char*)q+1) will fetch the second character from the memory location pointed by q, which is '0'.
- *((char*)q+2) will fetch the third character from the memory location pointed by q, which is 'c'.
- Therefore, the output will be "0, c".