C Programming - Declarations and Initializations - Discussion
Discussion Forum : Declarations and Initializations - Find Output of Program (Q.No. 10)
10.
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;
}
Answer: Option
Explanation:
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.
Discussion:
77 comments Page 2 of 8.
Rajat said:
9 years ago
When we are changing char array to short array it's not doing the same thing. In my compiler size of int is 4 and short is 2.
Akanksha said:
9 years ago
Why including only 512?
Kindly help by explaining this.
Kindly help by explaining this.
Gaurav said:
9 years ago
I think this might not be entirely correct.
Different computers use different orderings for bytes (notice I am not saying bits).
A little endian machine will place the least significant byte first (so ch[0] will come before ch[1]), and a big endian machine will do the reverse.
So the answer cannot be determined without this information.
Different computers use different orderings for bytes (notice I am not saying bits).
A little endian machine will place the least significant byte first (so ch[0] will come before ch[1]), and a big endian machine will do the reverse.
So the answer cannot be determined without this information.
Jenifer said:
10 years ago
How does the statement printf("%d %d %d", u.ch[0],u.ch[1],u.i); prints the size of union?
Any variable hold some garbage value without initialization.
Here we din't used sizeof operator too then how its calculating the size and printing. Any one please explain?
Any variable hold some garbage value without initialization.
Here we din't used sizeof operator too then how its calculating the size and printing. Any one please explain?
Devang r dixit said:
10 years ago
Please give output with explanation:
int main()
{
union a
{
int i;
float j;
char ch[2];
};
union a u;
u.ch[0] = 3;
u.ch[1] = 2;
printf("%d, %d, %d, %d\n", u.ch[0], u.ch[1], u.j,u.i);
return 0;
}
int main()
{
union a
{
int i;
float j;
char ch[2];
};
union a u;
u.ch[0] = 3;
u.ch[1] = 2;
printf("%d, %d, %d, %d\n", u.ch[0], u.ch[1], u.j,u.i);
return 0;
}
Deepika said:
9 years ago
union a u;
printf("%d, %d, %d\n", u.ch[0], u.ch[1], u.i);
Can anyone explain these both lines?
printf("%d, %d, %d\n", u.ch[0], u.ch[1], u.i);
Can anyone explain these both lines?
Ace said:
1 decade ago
#include<stdio.h>
int main()
{
union a
{
long int i, j;
int ch[2];
};
union a u;
u.ch[0] = 3;
u.i=1;u.j = 2;
u.ch[1] = 5 ;
printf( "%d, %d, %d, %d\n", u.ch[0], u.ch[1], u.j, u.i );
return 0;
}
int main()
{
union a
{
long int i, j;
int ch[2];
};
union a u;
u.ch[0] = 3;
u.i=1;u.j = 2;
u.ch[1] = 5 ;
printf( "%d, %d, %d, %d\n", u.ch[0], u.ch[1], u.j, u.i );
return 0;
}
Ravali said:
1 decade ago
I am not able to understand. And @Nandini you have a good explanation but I have understood it partially can you explain t more deeply?
Kuldip said:
1 decade ago
I read all question and answer but still I can't get answer of why union share common memory to all data elements.
Bhushan said:
1 decade ago
How we can calculate the value of u(I) at memory block 512?
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers