12
21
728x90

1. 구조체란?

     1) 사용자 정의 데이터 타입
     2) 관련 있는 데이터를 묶어서 처리할 수 있는 자료구조
     3) 서로 다른 데이터 타입의 묶음
          - 배열은 관련있는 동일한 데이터 타입을 묶은 것이고, 구조체는 관련있는 다른 데이터 타입을 묶은 것
     4) 서로 다른 데이터 타입을 묶어서 처리할 수 있도록 사용자가 정의하는 데이터 타입

 

2. 구조체 정의방법

     1) 구조체의 멤버로 일반 변수뿐만 아니라 배열이나 포인터 선언 가능
     2) 구조체를 정의하면 새로운 데이터형이 만들어짐
     3) 구조체 정의 -> 메모리 할당의 의미는 아님
     4) 구조체형 변수 선언 -> 메모리에 할당
형식 :
struct 구조체명 {
     데이터형 멤버명;
     데이터형 멤버명;
     ...
}

구조체명은 int, float와 같이 데이터 타입명과 같은 의미를 가지게 됨

     5) 구조체의 크기는 모든 멤버들의 크기의 합보다 크거나 같음
     6) 구조체 멤버 중 가장 큰 멤버의 크기를 기준으로 멤버 할당(Padding)
     7) 구조체의 크기를 구하려면 sizeof 연산자를 이용함
          - char 1byte , int 4byte해서 총 5byte가 될것 같지만, sizeof를 해보면 가장 큰 데이터타입을 기준으로 char가 4byte가 할당되어 총 8byte가
          나오게 된다.

 

3. 구조체 선언

형식 : struct 구조체명 변수명1, 변수명2, ...;

728x90

'프로그래밍 언어 > C언어' 카테고리의 다른 글

공용체  (0) 2021.12.22
구조체 처리  (0) 2021.12.21
배열 포인터  (0) 2021.12.21
포인터 배열  (0) 2021.12.21
포인터 연산  (0) 2021.12.20
COMMENT