히바리 쿄야 와 함께 하는 Developer Cafe
[4일차] DO IT C언어 입문/p456 ~p540/ 구조체와 연결 리스트 , 파일 입출력, 함수 포인터 본문
구조체란?
구조체(structure type)란 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입입니다.
구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있습니다.
배열이 같은 타입의 변수 집합이라고 한다면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것입니다.
이때 구조체를 구성하는 변수를 구조체의 멤버(member) 또는 멤버 변수(member variable)라고 합니다.
구조체의 문법
struct 구조체이름
{
멤버변수1의타입 멤버변수1의이름;
멤버변수2의타입 멤버변수2의이름;
...
};
struct 구조체이름 구조체변수이름;
typedef 키워드
C언어의 typedef 키워드는 이미 존재하는 타입에 새로운 이름을 붙일 때 사용합니다.
구조체 변수를 선언하거나 사용할 때에는 매번 struct 키워드를 사용하여 구조체임을 명시해야 합니다.
하지만 typedef 키워드를 사용하여 구조체에 새로운 이름을 선언하면 매번 struct 키워드를
사용하지 않아도 됩니다.
typedef struct 구조체이름 구조체의새로운이름;
typedef struct (구조체이름)
{
멤버변수1의타입 멤버변수1의이름;
멤버변수2의타입 멤버변수2의이름;
...
} 구조체의새로운이름;
구조체 멤버로의 접근 방법
배열에서는 인덱스를 이용하여 배열 요소에 접근할 수 있습니다.
하지만 구조체에서 구조체 멤버로 접근하려고 할 때는 멤버 연산자(.)를 사용해야 합니다.
문법
구조체변수이름.멤버변수이름
구조체 변수의 초기화
구조체 변수를 초기화할 때에는 멤버 연산자(.)와 중괄호({})를 사용합니다.
구조체변수이름 = {.멤버변수1이름 = 초깃값, .멤버변수2이름 = 초깃값, ...};
구조체변수이름 = {멤버변수1의초깃값, 멤버변수2의초깃값, ...};
구조체를 가지는 포인터
struct 구조체이름* 구조체포인터이름;
구조체 포인터를 이용하여 구조체의 멤버에 접근하는 방법에는 다음과 같이 두 가지 방법이 있습니다.
1. 참조 연산자(*)를 이용하는 방법
2. 화살표 연산자(->)를 이용하는 방법
(*구조체포인터).멤버변수이름
구조체포인터 -> 멤버변수이름
'C언어' 카테고리의 다른 글
[3일차] DO IT C언어 입문/p290~p454/ 포인터,프로세스와메모리할당,다차원포인터 (0) | 2021.05.15 |
---|---|
[2일차] DO IT C언어 입문/p152 ~ p288 / 제어문, 배열 , 지역변수, 전역변수 (0) | 2021.05.06 |
[1일차] DO IT C 언어 입문 / p 17 ~ p 150 / 표준출력함수, 상수와 변수, 함수 (0) | 2021.05.03 |
Comments