*자료형의 분류
- 기본 자료형 : 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;
#출력함수로 출력해보기
#구조체 포인터
- 구조체 변수를 대상으로 가리키는 포인터변수
포인터 -> 구조체!
# -> 연산자
#예제
#포인터를 멤버로 가지는 구조체
#구조체를 반환하는 경우
- 복사본이 반환된다.
#구조체 예제들
- 우유이름 , 가격표기
- 영어 사전 프로그램
- 두 가지 차 이름,가격을 입력받고 출력
- 구조체 안에 구조체 본인을 선언 , 구조체 포인터변수 선언 변수,배열
'C언어 > C언어' 카테고리의 다른 글
C언어 [정렬,이진탐색,매크로] (0) | 2017.11.10 |
---|---|
C언어 [동적할당,동적메모리] (0) | 2017.11.10 |
C언어 [포인터,포인터 배열,포인터 함수] (0) | 2017.11.04 |
C언어 [(라이브러리,난수 함수),(지역,전역변수),문자열] (0) | 2017.10.30 |
C언어 [배열,함수] (0) | 2017.10.28 |