C 프로그래밍 기초.

Slides:



Advertisements
Similar presentations
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
Advertisements

Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
TCP 서버/클라이언트 동작 원리 - (1) TCP 서버/클라이언트 예 웹 서버 웹 클라이언트 웹 클라이언트
주제 : 독거여성노인의 현황과 대책 학 과 학 번 성 명 사회복지학과 김 진 석
The 3rd Amado Photography Award
제 11 장 구조체.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express Slide 1 (of 25)
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
제 9 장 구조체와 공용체.
Part 12 구조체와 공용체 ©우균, 창병모 ©우균, 창병모.
Chapter 12 구조체와 열거형 구조체 열거형.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express.
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
1 PROJECT TITLE 기획 PAGE NO. 웹 페이지 구성 화 면 번호 화 면 설 명 연 결 화 면 L1 L4 L7
Chapter 03. 소켓 주소 구조체 다루기.
Chapter 03 배열, 구조체, 포인터.
구조체 struct 구조체와 함수 구조체의 배열, sizeof 연산자 열거형 enum 형 정의 typedef
연결리스트 (Linked List) 충북대학교 컴퓨터공학과 서 영 훈.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 14. 포인터와 함수에 대한 이해.
CHAP 3:배열, 구조체, 포인터.
3장. 소켓 주소 구조체 다루기 소켓 주소 구조체의 정의와 초기화 방법을 익힌다.
아파트관리비 청구서 이용 프로세스 안내 ㈜한국전산기술.
제 3 장. 배열과 구조체 및 포인터.
head data link data link data link NULL a b c
자료 구조: Chapter 3 (2)구조체, 포인터
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
[INA240] Data Structures and Practice
3장. 포인터, 배열, 구조체 포인터, 배열, 구조체 학습목표 기본적 데이터 타입
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
제 2 장 변수와 상수.
Booksinprint.com (BIP 2.0) 한글 매뉴얼
Chapter 03. 소켓 주소 구조체 다루기.
임베디드 시스템을 위한 C프로그래밍 기법 3.7 ~ 4.5 장 Raphael.
Derived Types-- Enumerated, Structure and Union
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
Chapter 4 수식과 연산자.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
Booksinprint.com (BIP 2.0) 한글 매뉴얼
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
국제의료관광 관련 법, 제도.
컴퓨터공학실습(I) 3주 인공지능연구실.
제 8장 구조체 Hello!! C 언어 강성호 김학배 최우영.
4장 자료형.
Chapter 05. 입출력 함수.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 22. 구조체와 사용자 정의 자료형1.
Chapter 4 변수 및 바인딩.
학습목표 Chapter 2-1. 변수와 포인터 변수의 선언과 변수에 대한 메모리 할당을 살펴본다.
2 배열과 구조.
C89(C++03) 프로그래밍 (Part 2) 7 배열 8 변수 범위 9 포인터 10 유도 자료형.
Ⅳ. 생식과 발생 4. 자손에게 줄 세포 만들기.
“병원 폐기물 소각장” 및 “가축 폐수 처리장” 건축 허가 반대 (2011년 “음식물처리장” 미해결 민원 연관)
자바 5.0 프로그래밍.
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
국가 내 불평등 현상과 해결방안 본 연구물은 학교 수업을 위해 개발된 것으로 교육 이외의 목적으로 사용될 수 없습니다.
무용의 특성 및 종류 체 육 1 학년 7. 무용 > (1) 무용의 특성 및 종류 > 1) 무용의 특성 (1/6)
다문화 사회의 이해 배 상 훈 . 1. 한국사회의 다문화현상 2. 원인과 정책으로 살펴본 다문화 한국사회.
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
Structures Summary.
성공적인 입사지원서 작성법 제이비커리어 교육수석 소 은 선.
‘e-posteel’ 매뉴얼[고객사]
Chapter 03. 소켓 주소 구조체 다루기.
1. 칭찬 및 고발제도 운영(안) 1. 목적 : 칭찬문화의 전사적 확산,전파를 통한 칭찬문화 조성 및 건전한 회사문화 형성
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 17. 포인터의 포인터.
3b장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
[2019 한양대 ERICA 졸업사진 촬영 안내] A type B type C type
Presentation transcript:

C 프로그래밍 기초

chapter 09. 구조체와 공용체

구조체와 공용체 C언어에서는 효율적인 프로그래밍을 위해 새로운 자료형을 만들어 사용하는 것을 지원함 구조체 서로 다른 자료형을 가지는 변수들을 단일 명칭 하에 그룹화시켜 또 다른 자료형으로 정의하는 것 [예]10명의 사원(employee)에 관한 자료를 표현할 경우 각 사원에 관한 자료 - 성명, 나이, 성별, 주소 등 각각의 속성을 따로따로 관리하는 것보다 하나의 이름으로 그룹화하여 관리하는 것이 편리  구조체 char name[10][20] name[0] name[1] name[9] int age[10] age[0] age[1] age[9] char sex[10] sex[0] sex[1] sex[9] char addr[10][50] addr[0] addr[1] addr[9]

구조체와 공용체 공용체 여러 변수를 모아 하나의 공통된 변수를 만들고 메모리를 공유 여러 변수가 메모리를 공유하므로 독립적으로 사용이 불가능

9.1 구조체의 정의 - 1 구조체는 두 개 이상의 원소들로 구성된 자료형이다. 구조체는 두 개 이상의  원소들로 구성된 자료형이다. 배열과 달리, 구조체의 각 원소는 자신의 자료형을 갖는데 이 자료형은 다른 원소의 자료형과 다를 수 있음 형식 예제 struct tag-name {      type element 1;      type element 2;        ∶      type element n; } variable-list; struct sample {      char name[15];      int age; char sex;      char nationality[10]; }; struct : 키워드 type : 자료형 tag-name : 구조체의 타입명 variable-list : 구조체의 변수명

9.1 구조체의 정의 - 2 구조체 사용시 메모리 구조 name 예제 struct sample { char name[15]; nationality sex age name 예제 15 byte struct sample {      char name[15];      int age; char sex;      char nationality[10]; }; 4 byte 1byte 10 byte

9.2 구조체의 선언 선언 방법 정의와 선언 형식 예제 struct employee x; struct 구조체명 변수명 리스트; struct employee y; struct employee x, y; 예제 struct employee {      char name[15];      int age; char sex;      char nationality[10]; } x, y;

9.3 구조체의 멤머 구조체 멤버 변수들을 참조를 위한 참조 연산자 일반 변수 : ‘.’ 연산자 사용 포인터 변수 : ‘->’ 연산자 사용 struct sample var, *ptr; nationality sex age name var.name ptr->name var.age ptr->age var.sex ptr->sex var.nationality ptr->nationality

[실습] 9-1. 구조체의 정의와 선언, 활용

[실습] 9-2. 구조체 멤버 접근 및 연산 [예제9-2] 구조체 정의, 선언 그리고 구조체 멤버에 입력하고 연산하는 프로그램

[실습] 9-3. 구조체 멤버 접근 및 연산 [예제9-3] 예제 9-1 프로그램에 구조체 포인터 변수 활용을 첨가한 예제 프로그램 [연습] 학생 개인 한 명에 대한 신상정보를 구조체로 표현해 보라

9.4 구조체 연산과 배열 - 1 구조체에 적용할 수 있는 연산자는 세 가지만 멤버 참조 연산자(.   ->) : 구조체의 멤버에 접근하도록 하는 참조 연산자 주소 연산자(&) : 구조체의 시작 주소를 계산함 대입 연산자(=) : 동일한 구조체 형을 갖는 구조체 변수 사이에 대입 연산자를 사용할 수 있음 struct employee x = {"Robert",50,'M',"U.S.A"}, y; y = x;

9.4 구조체 연산과 배열 - 2 구조체에서도 배열을 사용할 수 있음 선언 방법 구조체에서 배열의 초기화 형식 예제 struct 구조체명 배열명[배열크기]; struct employee x[3]; 예제 struct employee x[3]= {{"Roberts", 50, 'M', "U.S.A"},                        {"Tom", 25, 'M', "U.K"},                        {"July", 30, 'F', "U.S.A"}};

[실습] 예제 9-4 예제 9-1 프로그램을 확장하여 많은 종업원의 정보가 구조체 배열로 저장되어 있고, 나아가 25세이하인 종업원을 검색하는 프로그램이다.

[실습] 예제 9-4 – 실행 결과

[실습] 예제 9-5 학생들의 이름과 성적을 구조체 배열을 사용하여 그룹으로 처리하는 프로그램

[실습] 예제 9-5 [연습] 예제 9-5에 물리, 화학 과목을 추가하여 프로그램해 보라. 도서(book)를 나타내기 위해 title, author, price, page를 멤버로 하는 구조체를 선언하고, 이것을 이용한 도서검색 프로그램을 작성해 보라.

9.5 구조체 포인터 구조체도 포인터를 사용할 수 있음 선언 방법 구조체 멤버 참조 형식 예제 struct 구조체명 *변수명; struct employee *ptr; 예제 ptr->age;

[실습] 9-6. 구조체 포인터(성적처리) - 1 다음 페이지에 계속 …

[실습] 9-6. 구조체 포인터(성적처리) - 2

[실습] 9-6. 구조체 포인터(성적처리) – 실행 결과

9.6 함수의 인자로서 구조체 1.구조체가 함수인자 2.구조체의 포인터가 함수의 인자 구조체의 모든 멤버 데이터가 전달되기 때문에 구조체의 크기에 따라서 프로그램의 수행시간이 길어지게 되므로 비효율적 따라서 구조체의 포인터를 함수의 인자로 사용하게 되면 구조체의 포인터만 전달하기 때문에 효율적 2.구조체의 포인터가 함수의 인자 구조체가 통째로 복사되는 것이 아니라 구조체의 선두 번지만이 전달되기 때문에 프로그램의 수행 속도가 빠름 구조체를 함수의 인자로 사용할 경우에는 구조체 자체보다 구조체 포인터를 전달하는 것이 좋음

[실습] 9-7. 구조체를 반환하는 함수

[실습] 9-7. 구조체를 반환하는 함수 수행결과

9.7 함수의 리턴값이 구조체 함수의 리턴값을 구조체로 할 수 있음 지금까지 실습에서는 함수의 리턴값을 단 하나만 사용 구조체를 사용하면 여러 개의 값을 그룹핑하여 리턴할 수 있는 장점이 있음

[실습]9-8. 함수의 리턴값을 구조체로

9.8 중첩 구조체 중첩 구조체 구조체 속에 또 다른 구조체가 있는 것 분류, 인덱스 테이블의 링크 등 자료 구조 속성에 따라 매우 효율적으로 표현할 수 있음

[실습] 9-9. 구조체 안에 구조체 - 1 계속…

[실습] 9-9. 구조체 안에 구조체 -2

9.9 공용체 공용체 구조체와 공용체 비교 공용체의 정의와 선언 동일한 메모리 영역을 여러 개의 구성 요소가 공유하는 것 할당 멤버 각 구성 요소에 대하여 연속적으로 주소를 할당 멤버 각 구성 요소에 대하여 동일한 주소를 할당 사용방식 정해진 메모리 공간을 멤버들이 독립적으로 이용 멤버 중 가장 큰 메모리를 차지하는 크기만큼 메모리를 확보하여 멤버들이 공간을 공유 형식 예제 union 공용체명 { 공용체 멤버 정의; }; union u_tag { char a; int b; long c; } union u_tag *ptr;

[실습] 9-10. 공용체 사용 프로그램

연습문제 – 프로그램 작성 <연습문제>