1 / 65

CHAPTER 11. 구조체

CHAPTER 11. 구조체. 구조체의 기본 개념과 특징을 이해한다 . 구조체의 정의와 변수 선언 방법을 공부한다 . 구조체 배열을 공부한다 . 구조체 포인터를 공부한다 . 함수 간의 구조체 전달에 대해 공부한다 . 동적 기억장소 할당에 대해 공부한다 . char 형 포인터와 동적 할당에 대해 공부한다. 11.0 개요 p.522. 구조체 사용자 정의 자료형 (user-defined data type) 다양한 자료형의 여러 값을 하나의 단위로 묶어서 편리하게 관리하고 사용.

Download Presentation

CHAPTER 11. 구조체

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CHAPTER 11. 구조체

  2. 구조체의 기본 개념과 특징을 이해한다. • 구조체의 정의와 변수 선언 방법을 공부한다. • 구조체 배열을 공부한다. • 구조체 포인터를 공부한다. • 함수 간의 구조체 전달에 대해 공부한다. • 동적 기억장소 할당에 대해 공부한다. • char형 포인터와 동적 할당에 대해 공부한다.

  3. 11.0 개요 p.522 • 구조체 • 사용자 정의 자료형(user-defined data type) • 다양한 자료형의 여러 값을 하나의 단위로 묶어서 편리하게 관리하고 사용

  4. 11.1 구조체란 p.523 • 변수 vs. 배열 vs. 구조체

  5. 11.1 구조체란 p.524 • 구조체의 장점 • 서로 관련된 정보를 하나의 단위로 관리 가능 • 구조체 통째로 하나의 인수로서 함수로 전달 가능 • 한 개의 대입문으로 구조체 안의 모든 정보를 대입 가능: [그림 11-3]

  6. 11.2 구조체 정의와 변수 선언 p.524 • 구조체 정의와 구조체 변수 선언 • C에서 제공하는 기본 자료형(int, double, char와 같은 )이 아니므로 반드시 구조체를 정의(템플릿 정의)한 후 구조체 변수를 선언해야 한다.

  7. 11.2.1 구조체 정의 p.525 • 구조체 구성 단위 • 구조체 멤버(member) 또는 필드(field) • 구조체 멤버는 자료형이 서로 달라도 됨

  8. 11.2.1 구조체 정의 p.525 요약으로이동하기 • 구조체 정의 • 반드시 구조체 정의를 먼저 해야 구조체 변수를 선언해서 사용 가능 • 주의 • 구조체 태그명과 멤버명은 같을 수 없다. • 함수 외부에서 구조체 정의  정의 아래쪽의 모든 함수에서 사용 가능함수 안에서 정의  함수에서만 사용 가능 • 구조체 정의는 기억장소 할당이아님  구조체에 데이터를 저장하려면 반드시 구조체 변수 선언이 필요

  9. 11.2.1 구조체 정의 p.525

  10. 11.2.2 구조체 변수 선언 p.526 • 구조체 변수 선언 • 실제로 기억장소를 할당 받기 위해 필요

  11. 11.2.2 구조체 변수 선언 p.527

  12. 11.2.3 구조체 멤버 참조 p.526 • 구조체 멤버 참조 연산자 . 구조체 멤버를 참조하려면 반드시 어떤 구조체 변수의 멤버인진 명시해야 함

  13. p.528 멤버 참조 연산자

  14. 프로그램 예 p.528

  15. 11.2.3 구조체 멤버 참조

  16. 11.2.4 구조체 변수의 초기화 p.529 • 구조체 변수를 선언과 동시에 초기화하기

  17. 11.2.5 구조체 간의 대입 p.530 • 같은 구조체 형 변수  하나의 대입문으로 모든 멤버 간 대입이 가능

  18. 11.2.5 구조체 간의 대입 p.531 • 구조체 간의 대입은 반드시 같은 자료형끼리만가능 • 구조체 템플릿은 같더라도 구조체 태그명이다르다면 대입문을사용 불가

  19. 11.2.6 자료형 이름 재정의: typedefp.532 시험에선 생략 [프로그램 11-9]에서 사용됨 • 자료형 이름의 재정의 • 자료형 재정의 장점 • 프로그램의 이식성 증가 • 자료형이름을 짧게 재정의하거나 읽기 쉽게 할 수 있다.

  20. 11.2.7 구조체를 이용한 프로그램 예 p.533 • 사용자 한명에 관련된 정보인 이름, 성별, 나이를 하나로 묶어서 관리할 수 있도록 person이란 새로운 구조체를 정의하여 저장한다. • 사용자 세 명의 정보를 저장할 구조체 변수 세 개는 선언하면서 초기화

  21. 11.2.7 구조체를 이용한 프로그램 예 p.533 • 최고령 사용자의 정보를 출력할 때 나이뿐만 아니라 이름과 성별도 출력하기 위해 최고령 사용자의 정보를 저장할 구조체 변수를 추가로 선언한다. • 나이가 많은 사람을 찾기 위해 비교할 값은 구조체 변수의 age 멤버이므로if (u1.age< u2.age)와 같이 멤버 단위로 비교를 해야 한다. • 그러나 사용자 정보는 모두 세 가지로 구조체 변수에 한꺼번에 저장되어 있으므로 u2의 모든 정보를 oldest에 저장할 때는 oldest = u2;와 같이 대입문으로 해결할 수 있다.

  22. p.534

  23. p.534

  24. p.534

  25. 11.3 구조체 배열 p.536 요약 프로그램으로이동 p.538 Q) 종류가 서로 다른 3000개의 정보를 원소수가 3000개인 배열에 저장할 수 있을까? Q) 같은 구조체 형(서로 다른 종류의 멤버를 가짐) 정보 1000개는 원소수가 1000개인 배열에 저장할 수 있을까?  구조체도 일반 자료형처럼 배열의 자료형으로 사용 가능

  26. 11.3.1 구조체 배열 선언 p.536 • 구조체형 배열 선언: 배열의 각 원소는 구조체

  27. 11.3.1 구조체 배열 선언 p.536 • 구조체 배열을 선언과 동시에 초기화하기

  28. 11.3.2 구조체 배열 원소와 멤버 참조 p.537 • 구조체 배열 원소의 멤버 참조

  29. 사용자 10명의 이름, 성별, 나이 정보를 저장하는 구조체 배열을 선언하면서 초기화하기 p.538

  30. p.538

  31. #include<string.h>가필요

  32. [프로그램 11-2]와 [프로그램11-3]을 참고하여 [프로그램 11-3]에서 앞의 5명만 구조체 배열에 저장하여 5명의 정보를 출력한 후 나이가 제일 많은 사람의 정보를 max에 저장한 후 max의 멤버를 이용하여 최고령자 정보를 출력하기 나태희 20세 유현빈 29세 나원빈25세 문건영 22세 소지법 25세 최고령자: 유현빈(남) 29세 user[o]의 name과 age 멤버값 max의 name, gender,age 멤버값

  33. 11.4 구조체 포인터 생략,  만 소개

  34. 11.6.1 구조체 배열을 이용한 직원의 평균 급여 구하기 구조체 배열(프로그램 11-6)과 일반 배열(프로그램 11-7)을 이용했을 때의 차이점을 통해 구조체의 장점을 잘 알 수 있다. • 직원 5명의 이름, 아이디, 급여 정보를 입력받아 급여의 평균을 구한 후 급여가 평균 이상인 직원의아이디와급여 정보를 출력하시오.

  35. 11.6.1 구조체 배열을 이용한 직원의 평균 급여 구하기

  36. 11.6.2 사용자 정보 입출력 프로그램 생략

  37. 이 프로그램은 꼭 보관할 것 11.6.3 메뉴를 이용한 실험 데이터 관리 프로그램 • 실험 기간 동안 얻은 실험 데이터 관리 및 정보 획득을 위해 실험 데이터 입력, 출력, 검색, 정렬 작업을 반복해서 수행하는 프로그램을 작성하시오.

  38. 11.6.3 메뉴를 이용한 실험 데이터 관리 프로그램

  39. 11.6.3 메뉴를 이용한 실험 데이터 관리 프로그램 • 메뉴 선택 - 프로그램에서 가능한 기능을 사용자에게 메뉴로 제시하고 사용자가 그만두기를 원할 때까지 반복해서 작업을 하도록 한다. - 이때 일단 메뉴를 보여주고 특정 기능을 반복해서 수행하거나 종료하는 것은 do~while문을 이용해 처리

  40. 11.6.3 메뉴를 이용한 실험 데이터 관리 프로그램

More Related