Union의 재사용과 관련한 질문
안녕하세요 union 관련하여 질문드립니다.

예제 1에서 num.floating = 3.14 재사용하면서 덮어쓰기처럼 되었기에 그 밑의 num.integer가 쓰레기값이 되었다고 설명주셔서 이해하였습니다.

그런데 예제 2에서 data.integer를 통해 재사용하였는데 그 밑의 sizeof(data.character)값이 1 bytes로 출력될 수 있는지 궁금합니다.
저는 data.integer이 값을 할당한 직후기 때문에 sizeof(data.character)도 4 bytes로 출력될 것으로 예상했습니다.
감사합니다.
답변 1
1
질문이 너무 훌륭하십니다.
제가 설명을 올린대로, 공용체(union)에서는 모든 멤버가 같은 메모리 공간을 공유합니다. 그래서 data.integer = 65;로 값을 변경하면 data.character와 data.integer가 가리키는 메모리 공간이 같기 때문에 data.character의 값도 변경됩니다.
그런데 sizeof 연산자는 할당된 값과 상관없이 변수의 자료형 크기를 알려줍니다. 그래서 char 자료형의 크기는 항상 1byte로 리턴됩니다. 값이나 메모리 공유 여부와 상관없이 "자료형" 기준입니다.
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
51
2
26년 1회 실기 해설 강의
0
68
2
53번 4-1 자료 오류 있는 것 같습니다.
0
73
2
7번문제
0
60
2
C언어 변형문제 9번문제 Pdf 수정요청
0
48
2
메서드 오버드라드
0
51
2
실수
0
46
1
공부 우선순위 우선강의 알려주세요
0
90
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
49
2
25년 2회 기출 5:40 질문입니다.
0
43
2
모의고사1회 3번 파이썬문제
0
75
2
C언어 출제변형 6번 문제
0
50
2
c언어 출제변형 강의 질문
0
32
2
28:40
0
34
2
C : 언어 배열과 문자열 수업자료
0
31
2
파이썬 리스트, 딕셔너리 질문
0
43
2
모의고사 관련 질문 건
1
69
3
정적 변수, 정적 메서드(static) v2
0
51
2
v1.2 와 v0.91 PDF
0
104
1
업캐스팅 (부모형태, 자식생성자)
0
51
2
정보처리산업기사 준비중입니다.
0
74
2
실기 D -6
0
105
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
60
3
업캐스팅 문제 풀면 업캐스팅이 상속과 문제풀 때 어떻게 해석해야할지 모르겠습니다.
0
60
2





