union(공유체)에 관하여 궁금한게 있어요.
여우비
질문 제목 : union(공유체)에 관하여 궁금한 점union(공유체)의 특징질문 내용 :union(공유체)의 정의와 관련 특징 한 가지c언어 현재 union(공유체) part를 공부하고 있습니다.
union이 다른 자료형의 변수들이 동일 메모리 공간을 공유하는 자료구조라는 것은 알고 있습니다.
특징이 특정 시각에 한 자료형의 값만 존재한다는 것이 특징인데요;#include stdio.h
void main()
{
typedef union{
int each;
double litter;
}stock;
stock a = { 3 };
printf(%d\n, a.each);
printf(%lf\n\n, a.litter);
a.litter = 3.141592653589793;
printf(%d\n, a.each);
printf(%.15lf\n, a.litter);
}
이 소스를 코딩하면 결과가
3
0.000000
1413754136
3.141592653589793
이렇게 나오는데요
처음에 stock a = {3}이라고 하였을 때
typedef 안에 적혀있는 변수에
int each = 3이고 double litter = 0으로 되는건가요??
특징이 특정 시각에 한 자료형의 값만 존재한다는 것인데
위에서 처음에 3이라는 int 값을 줬기 때문에 each변수에만 3이 들어가고
litter은 double 형이라서 0이 들어가나요??
만약에 그렇다고 하면
다음 다음 문장에 a.litter = 3.141592653589793; 다음 문장에선
stock a에 값을 주지 않고 a.litter에만 값을 기입해서
a.each에는 쓰레기값(?)이 들어가고 a.litter엔 3.141592653589793 = 이 값이 들어가는건가요?
말이 좀 길었던 것 같았는데 초보자임을 알아주시고
답변 기다리겠습니다. 감사합니다