the coordinates of are and in this codepoint is structure name and point is union name howeverboth the declarations are almost same (except the keywords--struct and unionin main()we can see the difference between structures and unions while initializing values the fields of union cannot be initialized all at once look at the output carefully for the structure variable the output is programming tip as expected but for the union variable the answer does not seem to be the size of union is equal to the correct to understand the concept of unionexecute the following code size of its largest member the code given below just re-arranges the printf statements you will be surprised to see the result #include typedef struct point int xy}typedef union point int xint }int main(point { , }point printf("\ the coordinates of are % and % " xp ) printf("\ the coordinate of is % " ) printf("\ the coordinate of is % " )return output the coordinates of are and the coordinate of is the coordinate of is here although the output is correctthe data is still overwritten in memory arrays of union variables like structures we can also have an array of union variables howeverbecause of the problem of new data overwriting existing data in the other fieldsthe program may not display the accurate results #include union point int xy}int main(int iunion point points[ ]points[ points[ points[ points[