본문 바로가기
Programming/C, C++

C++ 구조체 (structure type)

by Dev_카페인 2022. 12. 14.
반응형

[C/C++] 구조체 (structure type)

  • 구조체란 사용자가 새롭게 정의할 수 있는 사용자 정의 타입이다.
  • 구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있다.
  • 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것이다.
  • 구조체를 구성하는 변수를 구조체의 멤버(Member) 또는 멤버 변수(Member Variable)이라고 한다.
  • 구조체 안에 있는 것들 중 가장 큰 자리를 가지고 있는 타입이 기준 크기가 된다. (바이트패딩)

구조체 정의 방법

  • 구식 컴파일러 버전에서는 struct 앞에 typedef를 넣어줘야 한다.
    • typedef struct 구조체이름 구조체의새로운이름;
  • 구식 컴파일러 버전에서는 구조체 멤버변수를 선언할 때 초기화해줘야 한다.
// 구버전
typedef struct 구조체이름
{
    멤버변수1의타입 멤버변수1의이름 = 초기값;
    멤버변수2의타입 멤버변수2의이름 = 초기값;
    ...
};
// 신버전
struct 구조체이름
{
    멤버변수1의타입 멤버변수1의이름;
    멤버변수2의타입 멤버변수2의이름;
    ...
};

출처 : TCPschool

// 구조체의 정의와 typedef선언을 동시에 진행
typedef struct (구조체이름)
{
    멤버변수1의타입 멤버변수1의이름;
    멤버변수2의타입 멤버변수2의이름;
    ...
} 구조체의새로운이름;

구조체 변수의 초기화와 접근 방법

  • 구조체변수이름.멤버변수이름
// 구조체 변수의 초기화 방법
구조체변수이름 = {멤버변수1 = 초기값, 멤버변수2 = 초기값 ...};
my_book = {.title = "HTML과 CSS", .author = "홍길동", .price = 28000};

// 구조체 변수의 접근 방법
구조체변수이름.멤버변수이름
my_book.title
반응형