1 구조체 윤 홍 란 컴퓨터 프로그래밍 2 구조체 정의  구조체란 ? o 서로 다른 형의 변수들을 하나로 묶어주는 mechanism. (cf. 배열 : 같은 형의 변수들을 하나로 묶어주는 mechanism) o 예 : 카드의.

Slides:



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

University of Inchon 멀티미디어와 가상환경 연구실 (Marvelab) A Book on C Chap 구 조 체 (1) 구조체 메커니즘은 다른 형의 변수들을 하나로 묶어 주는 방법을 제공한다. 간단한 예로 카드놀이를 위한 구조체를 정의해 보자.
11 주차 : Structures and Unions. 2 Introduction structure 는 다른 타입들의 변수를 모은 타입이며 그 타입들을 structure 의 멤버 라 한다. union 은 다른 타입의 여러 변수들을 하나 의 기억 장소에 보관함으로써 한.
제2장 C 언어의 확장 C++(1).
구조체란 무엇인가 ? 예: 학생관리 프로그램의 각 학생에 대한 기록(record) 구조체는 여러 자료형 변수들의 집합체이다.
Part 12 구조체와 공용체 안산1대학 디지털정보통신과 임 성 국.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
제14장 동적 메모리.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
C 프로그래밍 I.
제 9 장 구조체와 공용체.
-Part2- 제3장 포인터란 무엇인가.
11장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
윤 홍 란 포인터 윤 홍 란
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
자료 구조: Chapter 3 (2)구조체, 포인터
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
개정판 누구나 즐기는 C언어 콘서트 제9장 포인터 출처: pixabay.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
자료 구조: Chapter 3 (2)구조체, 포인터
2007 1학기 16 구조체.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
C 프로그래밍.
C 프로그래밍.
Dynamic Memory and Linked List
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
23장. 구조체와 사용자 정의 자료형 2.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
프로그래밍 랩 – 7주 리스트.
자료구조 실험 PSLab. 이태호.
14장. 포인터와 함수에 대한 이해.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
11장. 1차원 배열.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
C#.
C언어: 구조체 (Structures).
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
24장. 파일 입출력.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
Lesson 2. 기본 데이터형.
구조체.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
8주차: Strings, Arrays and Pointers
2 배열과 구조.
제 6 장 함수(functions).
구조체 (Structure).
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
C 프로그래밍 I.
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
구조체(struct)와 공용체(union)
Summary of Pointers and Arrays
Numerical Analysis Programming using NRs
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 23. 구조체와 사용자 정의 자료형2.
Chapter 11 구조체.
제 4 장 Record.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
13. 포인터와 배열! 함께 이해하기.
Pointers summary.
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

1 구조체 윤 홍 란

컴퓨터 프로그래밍 2 구조체 정의  구조체란 ? o 서로 다른 형의 변수들을 하나로 묶어주는 mechanism. (cf. 배열 : 같은 형의 변수들을 하나로 묶어주는 mechanism) o 예 : 카드의 정의 ostruct card 자료형은 생성되나 메모리는 할당되지 않음. struct card { int pips; char suit; }; struct card c1, c2; struct card { int pips; char suit; } c1, c2; pips : 1 ~ 10, 11(J), 12(Q), 13(K) suit : 'c'(clubs) suit : 'd'(diamonds) suit : 'h'(hearts) suit : 's'(spades)

컴퓨터 프로그래밍 3 구조체 정의  구조체 (structure) 는 관련된 여러 가지의 데이터형을 하나의 그룹으로 묶어 마치 하나의 변수처럼 다룰 수 있게 하는 것.  구조체의 장점 o 연관된 데이터 요소를 조직 o 파일 입출력을 단순화 o 함수 인수의 수를 최소화 o 메모리 할당에 특별한 순서를 줄 수 있다. o 프로그램을 더욱 읽기 쉽게 한다.

컴퓨터 프로그래밍 4 구조체 멤버에의 접근  구조체 멤버 접근 연산자 (.) 사용. c1.pips = 3; c1.suit = 's'; c2 = c1;/* c1 과 c2 는 같은 card */ struct fruit { char *name; int calories; }; struct vegetable { char *name; int calories; }; struct fruit a; struct vegetable b; /* a.calories 와 b.calories 는 구분됨.*/

컴퓨터 프로그래밍 5 typedef 의 사용  구조체와 같이 사용되어 새로운 타입을 만들 수 있다. ocard 가 새로운 타입의 이름이 된다. typedef struct card card; card c3, c4, c5; typedef struct emrec{ char name[50]; char addr[100]; char num[9]; int salary; }employee; /*employee 가 새로운 타입의 이름 */ employee typist, emp;

컴퓨터 프로그래밍 6 구조체배열 (array of structure)  typedef 의 사용 struct card { int pips; char suit; }deck[52]; /* deck 은 struct card 의 배열 */ typedef struct { float re; float im; } complex; complex a, b, c[100];

컴퓨터 프로그래밍 7 #define CLASS_SIZE 100 struct student { char *last_name; int student_id; char grade; }; struct student temp, class[CLASS_SIZE];.... tmp.grade = 'A'; tmp.last_name = "Casanova"; tmp.student_id = ; 구조체 멤버에의 접근

컴퓨터 프로그래밍 8 구조체의 메모리구조  구조체의 메모리 구조는 멤버 순으로 연속적인 메모리를 사용. struct person { char name[10]; char address[40]; int age; }; struct person myfriend;

컴퓨터 프로그래밍 9 구조체 포인터  구조체를 참조 (access) 하기 위해 포인터를 사용할 수 있으며, 구조 체 포인터는 중요한 역할을 한다.  구조체 포인터의 장점 o 구조체에 대한 포인터는 구조체 그 자체보다 다루기 쉽다. o 구조체를 다른 함수에서 참조하기 쉽다. o 구조체의 포인터를 이용하여 특수한 데이터 표현이 가능하다.  포인터에 의해서 멤버를 참조하는 방법 정리 o 구조체 멤버 연산자.(dot) 를 이용하는 방법 o 구조체 포인터 연산자 -> 를 이용하는 방법 struct student { char *last_name; int student_id; char grade; } st1; struct student *st_p=&st1; st1.name == (*st_p).name ⇒ st_p - >name

컴퓨터 프로그래밍 10 선언문과 배정문 struct student tmp, *p = &tmp; tmp.grade = 'A'; tmp.last_name = "Casanova"; tmp.student_id = 수식 동등한 수식개념적 값 tmp.gradep -> gradeA tmp.last_namep -> last_nameCasanova (*p).student_idp -> student_id *p -> last_name + 1(*(p -> last_name)) + 1D *(p -> last_name + 2)(p -> last_name)[2]s구조체포인터 struct student { char *last_name; int student_id; char grade; };

컴퓨터 프로그래밍 11 구조체 포인터와 구조체 배열 #include struct person { char name[10]; char address[40]; int age; }; void main(){ struct person fr[4] = { {"Lee", "seoul", 2}, {"Park", "incheon", 30}, {"Kim", "pusan", 35}, {"Chio", "daegu", 22}}; struct person *ptr = fr; for (int j = 0; j < 4; j++) { printf("%s %s %d\n", ptr->name, ptr->address, ptr->age); ptr++; } /* 구조체 포인터의 증가는 다음 구조체 배열의 원소를 가리 킨다. */