반응형
[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
반응형
'Programming > C, C++' 카테고리의 다른 글
C++ 구조체와 클래스의 코드로보는 차이점 (0) | 2022.12.20 |
---|---|
C++ 바이트 패딩 (Byte Padding) (0) | 2022.12.14 |
C++ 파일 입출력 fstream ifstream ofstream (char배열, string) (0) | 2022.12.14 |
C++ 타입(형) 변환 (Type conversion, Type Casting) (0) | 2022.12.14 |
C++ 한글 문자, 한글 문자열 출력 wchar_t (0) | 2022.12.13 |