Home » Technical Questions » Programming

What will be output of following c code? void main() { struct bitfield { unsigned a:5; unsigned c:5; unsigned b:6; }bit; char *p; struct bitfield *ptr,bit1={1,3,3}; p=&bit1; p++; clrscr(); printf("%d",*p); getch(); }

Correct Answer: Output: 12 Explanation: Binary value of a=1 is 00001 (in 5 bit) Binary value of b=3 is 00011 (in 5 bit) Binary value of c=3 is 000011 (in 6 bit) In memory it is represented as: Let address of bit1 is 500 which initialize to char pointer p Since can is one byte data type so p++ will be 501 *p means content of memory location 501 which is (00001100) and its binary equivalent is 12 Hence output is 12

← Previous Question Next Question→

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion