Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

히바리 쿄야 와 함께 하는 Developer Cafe

[4일차] DO IT C언어 입문/p456 ~p540/ 구조체와 연결 리스트 , 파일 입출력, 함수 포인터 본문

C언어

[4일차] DO IT C언어 입문/p456 ~p540/ 구조체와 연결 리스트 , 파일 입출력, 함수 포인터

TWICE&GFRIEND 2021. 5. 16. 09:56
구조체란?
구조체(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. 화살표 연산자(->)를 이용하는 방법

(*구조체포인터).멤버변수이름

구조체포인터 -> 멤버변수이름
Comments