11 주차 : Structures and Unions. 2 Introduction structure 는 다른 타입들의 변수를 모은 타입이며 그 타입들을 structure 의 멤버 라 한다. union 은 다른 타입의 여러 변수들을 하나 의 기억 장소에 보관함으로써 한.

Slides:



Advertisements
Similar presentations
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Advertisements

Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
구조체 : Structure 와 포인터 2. 집합적 변수 생성 가능 structure_declaration ::= struct_specifier declarator_list ; struct_specifier ::= struct tag_name | struct tag_name.
University of Inchon 멀티미디어와 가상환경 연구실 (Marvelab) A Book on C Chap 구 조 체 (1) 구조체 메커니즘은 다른 형의 변수들을 하나로 묶어 주는 방법을 제공한다. 간단한 예로 카드놀이를 위한 구조체를 정의해 보자.
1 구조체 윤 홍 란 컴퓨터 프로그래밍 2 구조체 정의  구조체란 ? o 서로 다른 형의 변수들을 하나로 묶어주는 mechanism. (cf. 배열 : 같은 형의 변수들을 하나로 묶어주는 mechanism) o 예 : 카드의.
C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
(주)SK하이이엔지 큐알티사업부 ◈ 제 목 : 2012년 SK하이이엔지 큐알티사업부 하반기 신입사원 채용의뢰의 건
제6장 조건문.
제 3 장 변수와 자료형.
제 11 장 구조체.
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
Power C++ 제6장 포인터와 문자열.
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express Slide 1 (of 34)
C++ Espresso 제1장 기초 사항.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express Slide 1 (of 25)
Java Presentation 중간 시험2 풀이
시스템 생명 주기(System Life Cycle)(1/2)
Part 12 구조체와 공용체 ©우균, 창병모 ©우균, 창병모.
Chapter 8 – 형 정의, 구조형 및 공용형 Outline 8.1 형 정의 typedef 8.2 구조형 struct
Chapter 12 구조체와 열거형 구조체 열거형.
구조체 활용 구조체 활용.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express.
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
8. 객체와 클래스 (기본).
시스템 생명 주기(System Life Cycle)(1/2)
구조체 struct 구조체와 함수 구조체의 배열, sizeof 연산자 열거형 enum 형 정의 typedef
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
배열, 포인터, 참조 배열은 같은 형을 가지는 변수들의 묶음이다..
CHAP 3:배열, 구조체, 포인터.
제 3 장. 배열과 구조체 및 포인터.
자료 구조: Chapter 3 (2)구조체, 포인터
변수와 자료형.
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
동적메모리와 연결리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
[INA240] Data Structures and Practice
3장. 포인터, 배열, 구조체 포인터, 배열, 구조체 학습목표 기본적 데이터 타입
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
7장 클래스.
변수와 자료형.
C++ 개요 객체지향 윈도우즈 프로그래밍 한국성서대학교 유일선
14주차.
제 3 장 상수와 변수
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
5주차: Functions in C.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
Derived Types-- Enumerated, Structure and Union
adopted from KNK C Programming : A Modern Approach
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
Chapter 04 자료 유형.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
4장 자료형.
3장. 클래스의 기본.
-Part2- 제1장 1차원 배열이란 무엇인가.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
Excel 일차 강사 : 박영민.
Structures Summary.
9주차: Using Files and Others
개정판 누구나 즐기는 C언어 콘서트 제11장 구조체, 공용체, 열거형 출처: pixabay.
C.
C++ 언어의 특징
3b장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
Presentation transcript:

11 주차 : Structures and Unions

2 Introduction structure 는 다른 타입들의 변수를 모은 타입이며 그 타입들을 structure 의 멤버 라 한다. union 은 다른 타입의 여러 변수들을 하나 의 기억 장소에 보관함으로써 한 객체가 여러 가지 타입으로 사용될 때 기억 장소 의 절약을 가져올 수 있다.

3 1. Structures 다른 타입의 여러 변수들을 모은 것 struct structure type 임을 나타내는 키워드 card tag_name struct card { int pips; char suit; };

4 pips, suit struct card type 의 멤버들 struct card c1, c2; struct card type 의 변수 c1, c2 의 선언 struct card{ int pips; char suit; } c1, c2;

5 c1.pips = 3; c2.suit = ‘ s ’ ; struct card type 의 변수 c1 의 멤버 pips 와 suit 를 각각 3 과 ‘ s ’ 로 초기화. 멤버 참조 연산자 c2 = c1; 변수 c2 의 모든 멤버에 c1 의 대응하는 멤버 의 값을 대입

6 typedef struct card card; struct card type 과 같은 card 라는 타입을 선언 card c3, c4, c5; card type 의 변수 3 개를 선언 typedef struct card{ int pips; char suit; } card; card c3, c4, c5;

7 struct fruit{ char *name; int calories; }; struct vegetable{ char *name; int calories; }; struct card{ int pips; char suit; } deck[52];

8 struct { int day; char day_name[4]; char month_name[4]; } yesterday, today, tomorrow; struct date { int day, month, year; char day_name[4]; char month_name[4]; }; struct date yesterday, today, tomorrow; typedef struct{ float re; float im; } complex; complex a, b, c[100];

9 2. Accessing Members of a Structure structure member operator ‘. ’ #define CLASS_SIZE 100 struct student{ char *last_name; int student_id; char grade; };... int main(void) { struct student tmp, class[CLASS_SIZE];

10 tmp.grade = ‘A’; tmp.last_name = “Casanova”; tmp.student_id = ;... /* Count the failing grades */ int fail(struct student class[])/* is same as *class */ { int i, cnt = 0; for(i = 0; i < CLASS_SIZE; i++){ cnt += class[i].grade == ‘F’; return cnt; }

11 structure 에 대한 pointer 를 경유해서 멤버를 참 조 struct complex{ double re; double im; }; typedef struct complex complex; void add(complex *a, complex *b, complex *c) { a->re = b->re + c->re; a->im = b->im + c->im; }

12 a->re 는 (*a).re 와 같다.

13 3. Using Structures with Functions structure type 도 다른 type 과 마찬가지로 함수의 인자가 될 때는 call-by-value 로 전달된다. 단, structure 의 크기가 클 때는 인자를 복 사하는데 시간이 많이 걸리고 공간상으 로도 낭비이므로 주로 structure 의 포인 터를 인자로 주는 방법을 사용한다.

14 4. Initializing of Structures structure type 변수의 초기화는 배열의 초기화와 흡사하다. card c = {13, ‘h’}; complex a[3][3] = { {{1.0, -0.1}, {2.0, 0.2}, {3.0, 0.3}}, {{4.0, -0.4}, {5.0, 0.5}, {6.0, 0.6}},}; /* 배열의 나머지 원소는 0 으로 초기화 */ struct fruit frt = {“plum”, 150);

15 5. Unions 멤버중 하나만을 취한다. union union type 임을 나타내는 키워드 int_or_float tag_name union int_or_float{ int i; float f; };

16 int i, float f union int_or_float type 의 멤버들 union int_or_float a, b, c union int_or_float type 의 변수 a, b, c 의 선언 union int_or_float type 의 크기는 int i, float f 중 큰 것의 크기다. 변수 a, b, c 는 참조될 때 int i 나 float f 중 어느 하나로만 참조될 수 있다.

17 typedef union int_or_float{ int i; float f; } number; int main(void) { number n; n.i = 4444;/* int i 로 참조 */ printf(“i: %10d f: %16.10e\n”, n.i, n.f); n.f = ;/* float f 로 참조 */ printf(“i: %10d f: %16.10e\n”, n.i, n.f); return 0; }

18

19 과제 4 (~5.31) 데이터 파일 (hw3.dat) 에서 알파벳 문자 를 읽어서 알파벳순으로 ( 화면에 ) 출력하 는 프로그램을 작성하라. 강의 자료를 참고하여 작성. hw3.dat 는 강의 홈페이지 BBS 에 있음. 5 월 16 일 현재 번호로 136 번 글. 배열을 알파벳순으로 정렬 (sorting) 하는 함 수를 작성하라. 보고서 제출양식 지킬 것.