728x90
1. 구조체란?
1) 사용자 정의 데이터 타입 |
2) 관련 있는 데이터를 묶어서 처리할 수 있는 자료구조 |
3) 서로 다른 데이터 타입의 묶음 |
![]() |
- 배열은 관련있는 동일한 데이터 타입을 묶은 것이고, 구조체는 관련있는 다른 데이터 타입을 묶은 것 |
4) 서로 다른 데이터 타입을 묶어서 처리할 수 있도록 사용자가 정의하는 데이터 타입 |
![]() |
2. 구조체 정의방법
1) 구조체의 멤버로 일반 변수뿐만 아니라 배열이나 포인터 선언 가능 |
2) 구조체를 정의하면 새로운 데이터형이 만들어짐 |
3) 구조체 정의 -> 메모리 할당의 의미는 아님 |
4) 구조체형 변수 선언 -> 메모리에 할당 |
형식 :
struct 구조체명 {
데이터형 멤버명;
데이터형 멤버명;
...
}
5) 구조체의 크기는 모든 멤버들의 크기의 합보다 크거나 같음 |
6) 구조체 멤버 중 가장 큰 멤버의 크기를 기준으로 멤버 할당(Padding) |
7) 구조체의 크기를 구하려면 sizeof 연산자를 이용함 |
![]() |
- char 1byte , int 4byte해서 총 5byte가 될것 같지만, sizeof를 해보면 가장 큰 데이터타입을 기준으로 char가 4byte가 할당되어 총 8byte가 나오게 된다. |
3. 구조체 선언
형식 : struct 구조체명 변수명1, 변수명2, ...;
728x90