*자료형의 분류

 

- 기본 자료형 : char , int , float , double

 

- 파생 자료형 : 배열 , 열거형 , 구조체 , 공용체

 

 

 

#구조체란 ?

 

- 여러 자료형 변수를 묶어놓은 공간이다.

 

- 구조체는 사용자가 만들어 사용하는 자료형이다.

  (사용자 정의 자료형)

 

- 구조체 선언과 구조체 변수 선언은 다르므로 주의

 

- 구조체 선언이 있어야 구조체 변수 선언이 가능하다.

 

 

 

#구조체의 필요성

 

- 변수들을 하나로 묶을 수 있다.

 

 

 

 

 

 

 

 

 

#구조체와 배열

 

 

 

 

 

 

 

 

 

 

 

 

#구조체 선언

 

- 여러 자료형 변수를 묶어놓은 공간을 설계해놓은 설계도

 

- 변수 선언과 모양이 비슷하지만 , 저장 공간이 생기지 않는다.

 

- 여러개의 구조체를 선언 할때는 이름이 중복되면 안된다.

 

선언 형식

 

struct 구조체 이름{

제목

주연배우

개봉날짜

};

 

 

 

 

 

 

 

 

 

#구조체 변수

 

- 구조체 선언(설계도)의 구조로 실제 데이터를 저장하는 전체 공간(집)이다.

 

- 구조체 정의와 구조체 변수 선언은 다르다.

 

 

 

 

 

 

 

 

 

 

#구조체 초기화

 

- 중괄호를 이용하여 초기값을 나열

 

 

 

 

 

 

 

 

#구조체 멤버 참조

 

- 구조체 멤버를 참조하려면 ( . ) 연산자를 이용하면 된다.

 

 

 

 

 

 

 

 

 

 

#구조체를 멤버로 가지는 구조체

 

 

 

 

 

 

 

 

 

 

 

#구조체 변수의 대입과 비교

 

- 같은 구조체 변수끼리 대입은 가능하지만 비교는 불가능하다.

 

 

 

 

 

 

 

 

 

#(이름 , 핸드폰번호 , 나이) 2명에 대한 정보

 

 

 

 

 

 

 

 

 

#구조체 배열

 

 

선언형식

 

struct person{
  int number;

  char name[20];

  double grade;

};

 

main (void)

{

 struct person list[100] //구조체 배열 선언

}    

 

 

#구조체 배열 초기화

 

 

 

 

 

 

 

#구조체 배열을 사용해 3명에 대한 (이름,핸드폰번호,나이) 정보 받기

 

 

 

 

 

 

 

 

#구조체 함수

 

- 구조체를 함수로 전달하는 경우 : 구조체의 복사본이 함수로 전달되게 된다.

 

 만약 구조체의 크기가 크면 그만큼 시간과 메모리가 소요된다.

 

 

 

 

 

 

 

 

 

- 구조체의 포인터를 함수의 인수로 전달하는 경우 : 시간과 공간을 절약할 수 있다.

                                                                   원본 훼손의 가능성이 있다.

 

 

 

 

 

 

 

 

 

 

#구조체를 반환하는 경우

 

- 복사본이 반환

 

 

 

 

 

 

 

 

#typedef

 

- typedef는 새로운 자료형(type)을 정의(define)하는것이다.

 

- C의 기본 자료형을 확장시키는 역할

 

 

 

 

 

 

 

 

 

 

 

#구조체로 typedef 정의

 

 

사용형식

 

typedef struct point{

 

  int x;

  int y;

 

}PP;

 

 

 

 

 

 

 

 

#출력함수로 출력해보기

 

 

 

 

 

 

 

 

 

#구조체 포인터

 

- 구조체 변수를 대상으로 가리키는 포인터변수

  포인터 -> 구조체!

 

 

 

 

 

 

 

 

# -> 연산자

 

 

 

 

 

 

 

#예제

 

 

 

 

 

 

 

 

 

#포인터를 멤버로 가지는 구조체

 

 

 

 

 

 

 

 

 

 

 

#구조체를 반환하는 경우

 

- 복사본이 반환된다.

 

 

 

 

 

 

 

#구조체 예제들

 

 

- 우유이름 , 가격표기

 

 

 

 

 

 

 

 

- 영어 사전 프로그램

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 두 가지 차 이름,가격을 입력받고 출력

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 구조체 안에 구조체 본인을 선언 , 구조체 포인터변수 선언 변수,배열

 

 

 

 

 

 

 

 

 

+ Recent posts