C:TIL-구조체, 포인터 복습

Nayeon Kim·2021년 9월 6일
2

c language

목록 보기
1/9

구조체는 서로 다른 타입의 데이터들을 하나로 묶기 위해 사용하는 파생 자료형이다.
여러 데이터를 묶는다는 점에서 배열과 유사한데
배열의 경우에는 같은 타입의 데이터끼리만 묶을 수 있고,
구조체는 다른 타입끼리도 묶을 수 있다는 점이 가장 큰 구별점이다.

선언 시, 메인 함수보다 위에 선언
구조체 선언 방법1. 구조체명 선언

struct student {
    char name[10];
    int age;
};

student = 구조체 태그 = 이름
name, age = 구조체 멤버
(구조체 안에 구조체도 선언할 수 있음,,)

이 구조체의 size는 10 + 4 = 14 가 아니라 16임!!
왜? 크기는 항상 4단위로 끊기기 때문에 name의 크기는 4/4/2 10이 아니라 4/4/4 12가 된다.
그래서 12+ 4 = 16 크기가 배정됨

구조체를 선언한 것은 변수 선언한 것이 아님!!
틀만 정의한 상태이고, 변수를 따로 선언해주어야 데이터를 저장할 수 있음

방법 1의 경우, 변수 선언은
struct를 붙인다

struct person p;

선언과 동시에 초기화해줄 수 있음

struct person p = {"nayeon", 10};

구조체 멤버 접근 시, 구조체 이름.멤버명

p.age = 10;

구조체 선언 방법2. 구조체타입 선언 (구조체명 첫글자 대문자로 쓰던가..?)

typedef struct (person) {
	char name[10];
    	int age;
}person;

방법 2의 구조체 변수 선언 방식은

person p;

#포인터를 활용한 구조체를 보기 이전에, 포인터에 대해서 잠깐 알아보고 가기

profile
Department of Computer Science

0개의 댓글