구조체는 왜 사용할까 ?
자료를 체계적으로 관리하기 위해서 !
Person 이라는 구조체를 만들었을 때 -> A, B, C라는 사람을 쉽게 생성하고 관리할 수 있다.
- 구조체는 struct 으로 정의한다. (data stucture의 약어)
- 구조체는 관련 정보를 하나의 의미로 묶을 때 사용한다.
- 선언 : struct 구조체 이름 변수이름;
- 구조체 변수를 선언하면서 초기화 : struct 구조체 이름 변수이름={ .변수=값, ..};
- 정의 : struct 구조체이름 { ..... };
- 구조체를 정의하면서 변수 선언 : struct 구조체이름 (...) 변수;
- 접근 : 구조체 변수.구조체 멤버
- 구조체 멤버에 접근할 때는 . 을 사용한다. ex) person1.age=19;
- 문자열 멤버는 할당 연산자로 저장할 수 없다. -> strcpy()함수 사용 ex) person.1="홍길동" (X)
stuct 키워드를 생략해주는 typedef
typedef는 자료형의 별칭을 만드는 기능을 담당한다.
선언 : typedef 자료형 별칭
- 정의 : typedef struct 구조체 이름 { .... } 구조체 이름;
- 익명 구조체 : typedef struct { .... } 구조체 이름;
- 선언 : 구조체이름 변수이름;
구조체 포인터
구조체는 멤버 변수가 여러개 있어 크기가 큰 편 이므로 일일히 변수를 선언하는 것보다는
포인터에 메모리를 할당하는편이 효율적이다.
- 구조체 포인터는 malloc 함수를 사용하여 동적메모리를 할당
- 선언: stuct 구조체이름 * 포인터이름= malloc(sizeof(struct 구조체이름));
- 접근: 구조체 변수 -> 구조체 멤버
- 구조체 포인터 멤버에 접근할 때는 -> 을 사용한다.
'C > 기본 문법 내용 정리' 카테고리의 다른 글
메모리 영역 (0) | 2022.03.16 |
---|---|
파일 입출력 (0) | 2022.03.08 |
9장. 문자열 (0) | 2022.02.08 |
8장. 포인터 (0) | 2022.02.03 |
7장. 배열 (0) | 2022.01.28 |