윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 23. 구조체와 사용자 정의 자료형2.

Slides:



Advertisements
Similar presentations
1.1 구조체란 1.2 중첩 구조체 1.3 구조체와 배열 1.4 구조체와 포인터 1.5 구조체와 함수 1.6 공용체와 열거형.
Advertisements

1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
1 구조체 윤 홍 란 컴퓨터 프로그래밍 2 구조체 정의  구조체란 ? o 서로 다른 형의 변수들을 하나로 묶어주는 mechanism. (cf. 배열 : 같은 형의 변수들을 하나로 묶어주는 mechanism) o 예 : 카드의.
제2장 C 언어의 확장 C++(1).
구조체란 무엇인가 ? 예: 학생관리 프로그램의 각 학생에 대한 기록(record) 구조체는 여러 자료형 변수들의 집합체이다.
Part 12 구조체와 공용체 안산1대학 디지털정보통신과 임 성 국.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
제 9 장 포인터.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 07. 반복실행을 명령하는 반복문.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
11장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
자료 구조: Chapter 3 (2)구조체, 포인터
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
5장 배열 작성자 : 변재현.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
2007 1학기 16 구조체.
윤성우의 열혈 C++ 프로그래밍 Chapter C++에서의 구조체 윤성우 저 열혈강의 C++ 프로그래밍 개정판.
Chapter 25. 메모리 관리와 메모리의 동적 할당
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 24. 파일 입출력.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Chapter 06. printf 함수와 scanf 함수 정리하기
23장. 구조체와 사용자 정의 자료형 2.
2주차: 변수, 수식, Control Flow.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 03. 변수와 연산자.
14장. 포인터와 함수에 대한 이해.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
11장. 1차원 배열.
C#.
C언어: 구조체 (Structures).
13. 연산자 오버로딩.
JA A V W. 03.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
나만의 자료 형을 만들 수 있다. C는 int, float, char 등의 자료 형을 제공한다.
구조체.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Chapter 02. 자바 기본 문법.
8주차: Strings, Arrays and Pointers
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
제 6 장 함수(functions).
Chapter 13. 템플릿(Template) 1
Chapter 15. 예외처리(Exception Handling)
구조체 (Structure).
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Chapter 27. 파일의 분할과 헤더파일의 디자인
구조체(struct)와 공용체(union)
Summary of Pointers and Arrays
Numerical Analysis Programming using NRs
Chapter 11 구조체.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 04. 클래스의 완성.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 07. 상속의 이해.
13. 포인터와 배열! 함께 이해하기.
7 생성자 함수.
6 객체.
Presentation transcript:

윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 23. 구조체와 사용자 정의 자료형2

Chapter 23-1. 구조체의 정의와 typedef 선언 윤성우의 열혈 C 프로그래밍 Chapter 23-1. 구조체의 정의와 typedef 선언 윤성우 저 열혈강의 C 프로그래밍 개정판

typedef 선언 윤성우의 열혈 C 프로그래밍 typedef int INT; INT num; INT * ptr; 정의되는 이름들 실행결과

구조체 정의와 typedef 선언 윤성우의 열혈 C 프로그래밍 구조체 point 정의 후 struct point에 Point라는 이름을 부여하기 위한 typedef 선언 추가! 합친 형태 구조체 point의 정의와 Point에 대한 typedef 선언을 한데 묶은 형태

구조체 정의와 typedef 선언 관련 예제 윤성우의 열혈 C 프로그래밍 구조체 point의 정의와 typedef 선언 구조체 person의 정의와 Person이라는 이름의 typedef 선언을 하나로! 실행결과

구조체의 이름 생략 윤성우의 열혈 C 프로그래밍 typedef 선언으로 인해서 새로운 이름 Person이 정의되었으니, 구조체의 이름 persons은 큰 의미가 없다. 이름이 생략된 형태 따라서 이렇듯 구조체의 이름을 생략하는 것도 가능하다.

Chapter 23-2. 함수로의 구조체 변수 전달과 반환 윤성우의 열혈 C 프로그래밍 Chapter 23-2. 함수로의 구조체 변수 전달과 반환 윤성우 저 열혈강의 C 프로그래밍 개정판

함수의 인자로 전달되고 return문에 의해 반환되는 구조체 변수1 윤성우의 열혈 C 프로그래밍 함수의 인자로 전달되고 return문에 의해 반환되는 구조체 변수1 구조체 변수 cen이 통째로 반환된다. 실행결과 ShowPosition 함수의 매개변수에 curPos에 저장된 값이 통째로 복사된다.

배열까지도 통째로 복사 윤성우의 열혈 C 프로그래밍 구조체의 멤버로 배열이 선언된 경우 구조체 변수를 인자로 전달하거나 반환 시 배열까지도 통째로 복사가 이뤄진다. 실행결과

구조체 기반의 Call-by-reference 윤성우의 열혈 C 프로그래밍 구조체 기반의 Call-by-reference 구조체 변수 대상의 Call-by-reference는 일반변수의 Call-by-reference와 동일하다. 실행결과

구조체 변수를 대상으로 가능한 연산1 윤성우의 열혈 C 프로그래밍 구조체 변수간 대입연산의 결과로 멤버 대 멤버 복사가 이뤄진다는 사실을 확인하자! 실행결과

구조체 변수를 대상으로 가능한 연산2 윤성우의 열혈 C 프로그래밍 구조체 Point의 덧셈 함수 구조체 변수를 대상으로는 덧셈 및 뺄셈 연산이 불가능하다. 따라서 필요하다면 덧셈함수와 뺄셈함수를 정의해야 한다. 구조체 Point의 뺄셈 함수 실행결과

Chapter 23-3. 구조체의 유용함에 대한 논의와 중첩 구조체 윤성우의 열혈 C 프로그래밍 Chapter 23-3. 구조체의 유용함에 대한 논의와 중첩 구조체 윤성우 저 열혈강의 C 프로그래밍 개정판

구조체를 정의하는 이유 윤성우의 열혈 C 프로그래밍 구조체의 정의 이유! 하나의 배열 선언으로 종류가 다른 ▶ 연관 있는 데이터를 하나로 묶을 수 있는 자료형을 정의할 수 있다. ▶ 연관 있는 데이터를 묶으면 데이터의 표현 및 관리가 용이해진다. ▶ 데이터의 표현 및 관리가 용이해지면 그만큼 합리적인 코드를 작성할 수 있다. 구조체의 정의 이유! 하나의 배열 선언으로 종류가 다른 데이터들을 한데 저장할 수 있다.. 인자 전달 시 용이하다.

중첩된 구조체의 정의와 변수의 선언 윤성우의 열혈 C 프로그래밍 앞서 정의한 구조체는 이후에 새로운 구조체를 선언하는데 있어서 기본 자료형의 이름과 마찬가지로 사용이 될 수 있다. 실행결과

Chapter 23-4. 공용체(Union Type)의 정의와 의미 윤성우의 열혈 C 프로그래밍 Chapter 23-4. 공용체(Union Type)의 정의와 의미 윤성우 저 열혈강의 C 프로그래밍 개정판

구조체 vs. 공용체: 선언방식의 차이 윤성우의 열혈 C 프로그래밍 정의 방법에 있어서의 차이는 키워드 struct를 쓰느냐, 아니면 키워드 union을 쓰느냐에 있다!

구조체 vs. 공용체: 실행결과를 통한 관찰 윤성우의 열혈 C 프로그래밍 공용체 변수를 이루는 멤버의 시작 주소 값이 모두 동일함을 관찰하고 공용체 변수의 크기 값을 관찰한다! 실행결과

윤성우의 열혈 C 프로그래밍 구조체 vs. 공용체: 메모리적 차이 실행결과 mem1에 저장된 데이터를 덮어쓴다.

윤성우의 열혈 C 프로그래밍 공용체의 유용함1: 문제의 제시 해결책이 되는 공용체의 정의

윤성우의 열혈 C 프로그래밍 공용체의 유용함2: 문제의 해결 실행결과

Chapter 23-5. 열거형(Enumerated Type)의 정의와 의미 윤성우의 열혈 C 프로그래밍 Chapter 23-5. 열거형(Enumerated Type)의 정의와 의미 윤성우 저 열혈강의 C 프로그래밍 개정판

열거형의 정의와 변수의 선언 윤성우의 열혈 C 프로그래밍 ▶ 열거형 syllable의 정의의 의미 Do, Re, Mi, Fa. . . . 를 열거형 상수라 한다. Do를 정수 1을 의미하는 상수로 정의한다. 그리고 이 값은 syllable형 변수에 저장이 가능하다 ▶ syllable형 변수의 선언 enum syllable tone; // syllable형 변수 tone의 선언 구조체 공용체와 마찬가지로 typedef 선언을 추가하여 enum 선언을 생략할 수 있다.

열거형의 정의와 변수선언의 예 윤성우의 열혈 C 프로그래밍 typedef 선언이 추가된 열거형의 정의 및 선언 실행결과 열거형 상수는 선언 이후 어디서건 쓸 수 있는 상수가 된다.

열거형 상수의 값이 결정되는 방식 윤성우의 열혈 C 프로그래밍 동일한 선언 열거형 상수의 값은 명시되지 않으면 0부터 시작해서 1씩 증가한다. 동일한 선언 값이 명시되지 않는 상수는 앞에 정의된 상수 값에서 1이 증가한다.

열거형의 유용함은 둘 이상의 연관이 있는 이름을 상수로 선언함으로써 윤성우의 열혈 C 프로그래밍 열거형의 유용함 typedef enum syllable { Do=1, Re=2, Mi=3, Fa=4, So=5, La=6, Ti=7 } Syllable; Syllable이라는 이름의 자료형 안에서 음계에 관련있는 상수들을 모두 묶어서 정의하였다! 변수의 선언이 목적이 아닌 상수의 선언이 목적인 경우 이렇듯 열거형의 이름과 typedef 선언을 생략하기도 한다. enum { Do=1, Re=2, Mi=3, Fa=4, So=5, La=6, Ti=7 }; 열거형의 유용함은 둘 이상의 연관이 있는 이름을 상수로 선언함으로써 프로그램의 가독성을 높이는데 있다.

Chapter 23이 끝났습니다. 질문 있으신지요?