-
[C++] 구조체, 공용체, 열거체c & c++ 2022. 9. 20. 13:39
❗ 구조체를 인수로 전달
: 함수가 원본 구조체의 복사본을 가지고 작업하므로 안전
❗ 구조체의 주소를 인수로 전달
: 원본 구조체에 직접 접근 하므로 원본 데이터 측면에서는 위험 => const 사용
struct Prop { int savings; int loan; }; int CalcProperty(int, int); // int CalcProperty(Prop*) // 구조체의 주소받음 int main(void) { int hong_prop; Prop hong = {10000, 4000}; // 구조체 초기화 hong_prop = CalcProperty(hong.savings, hong.loan); // 구조체의 멤버 변수를 함수의 인수로 전달함 // hong_prop = CalcProperty(&hong); // 주소 전달 cout << "홍길동의 재산은 적금 " << hong.savings << "원에 대출 " << hong.loan << "원을 제외한 총 " << hong_prop << "원입니다."; return 0; } int CalcProperty(int s, int l) { return (s - l); }💡 공용체 union
: 모든 멤버 변수가 하나의 메모리 공간을 공유한다.
=> 같은 메모리를 공유하기 때문에 공용체는 한 번에 하나의 멤버 변수밖에 사용할 수 없다.
: 순서 규칙적X
: 미리 알 수 없는 다양한 타입의 데이터 저장
: 크기가 가장 큰 멤버 변수의 크기로 메모리 할당
union ShareData { char a; short b; int c; }; // 모두 같은 메모리 공유💡 열거체 enum
: 새로운 타입을 선언하며 동시에 그 타입이 가질 수 있는 정수형 상숫값도 같이 명시
: 값이 정의되지 않으면 0부터 시작해서 1씩 증가하며 값 정해진다, 값 정의되어 있다면
그 정의된 값 이후부터 1씩 증가
enum Weather { SUNNY = 0, CLOUD = 10, RAIN = 20, SNOW = 30 };'c & c++' 카테고리의 다른 글
[C++] 클래스, 접근 제어자, this (1) 2022.09.20 [C++] 함수, 참조자, 디폴트 인수, 함수 오버로딩, 함수 오버라이딩, 인라인 함수 (1) 2022.09.20 [C++] C++이란? string 클래스 (1) 2022.09.19 [C] 기호 상수 (0) 2022.09.18 [C] 구조체, 구조체 배열, 연결 리스트 (0) 2022.09.16