나만의 자료 형을 만들 수 있다. C는 int, float, char 등의 자료 형을 제공한다.

Slides:



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

1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
1 구조체 윤 홍 란 컴퓨터 프로그래밍 2 구조체 정의  구조체란 ? o 서로 다른 형의 변수들을 하나로 묶어주는 mechanism. (cf. 배열 : 같은 형의 변수들을 하나로 묶어주는 mechanism) o 예 : 카드의.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
제14장 동적 메모리.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
연결리스트(linked list).
제 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 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
5장. 참조 타입.
제 3장. C보다 나은 C++ II.
오일석, C와 ALPS, 장. C로 풍덩 © 오일석, 전북대학교 컴퓨터공학.
C 프로그래밍.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
23장. 구조체와 사용자 정의 자료형 2.
11장. 1차원 배열.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
C#.
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
인터넷응용프로그래밍 JavaScript(Intro).
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
컴퓨터 개론 및 실습 11. 동적 메모리 할당.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
포인터 1차원 배열과 포인터 2차원 배열과 포인터 문자열 배열과 포인터 포인터 배열
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Chapter 02. 자바 기본 문법.
8주차: Strings, Arrays and Pointers
CHAP 21. 전화, SMS, 주소록.
12. 상속 : 고급.
데이터 동적 할당 Collection class.
구조체 (Structure).
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Chapter 09. 포인터 1.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
함수, 모듈.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
구조체(struct)와 공용체(union)
Numerical Analysis Programming using NRs
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 23. 구조체와 사용자 정의 자료형2.
Chapter 11 구조체.
제 4 장 Record.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
어서와 C언어는 처음이지 제21장.
 6장. SQL 쿼리.
Visual Basic .NET 기초문법.
7 생성자 함수.
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

나만의 자료 형을 만들 수 있다. C는 int, float, char 등의 자료 형을 제공한다. 때로 이들과 다른 나만의 형이 필요할 때가 있다. 학생 레코드 이름, 학번, 주소, 성적 등으로 구성된다. 2차원 상의 한 점 x와 y 좌표로 구성된다. struct를 이용하면, 관련된 데이터를 한 묶음으로 취급할 수 있다.

7.1 struct 도형 그리기 예제 이 선언에서 x와 y는 별개의 변수 관련이 있기 때문에 바로 옆에 선언하고 같이 사용할 뿐 떨어져 선언해도 문법적으로 문제 없다. 단지 스타일이 나빠질 뿐이다. 이 상황에서 관련 있는 x와 y를 어떤 틀로 묶으면 편리하다. struct가 그 역할을 한다.

struct를 사용하면, 라인 1-4에서 point라는 새로운 형 선언 라인 6은 point 형의 변수 p 선언 변수 p는 x와 y라는 멤버 변수를 가진다. 멤버 변수에 접근하기 위해서는 . 연산자를 사용한다. (라인 8-9)

구조 형의 배열을 사용하는 예

구조 형은 중첩될 수 있다.

동적 메모리 사용하는 예 (메모리를 낭비하지 않기 위해)

구조 형 변수의 연산 대입 허용, 비교는 허용 안됨 선언하며 초기화 가능

7.2 구조와 함수 아래 코드가 제대로 작동할까? (C 언어는 값에 의한 호출임을 염두에 두고 생각해 보자.)

앞의 코드는 제대로 작동하지 않는다. 포인터를 사용해야 제대로 작동한다.

매개 변수 값을 변경하지 않는 경우, 포인터를 사용하지 않아도 된다. 예, 직사각형 그리기 하지만 아래 코드는 비효율적이다. 왜? (포인터를 사용하는) 아래 코드가 더 효율적이다.

예제 프로그램을 공부해 보자. 직사각형 그리기 프로그램 [7.1]

create_rectangle()과 make_rectangle()은 구조 형 반환

해 보자.

연습 문제

7.3 typedef와 enum typedef는 어떤 형의 별칭을 만들 때 사용

typedef로 만든 형은 원래 형과 똑 같은 방식으로 사용 가능 함수 반환 형, 주소 연산자 &, sizeof 연산자, 캐스트 연산자 등

enum 형 변수의 값이 몇 종류로 제한되는 경우에 사용 예를 들어, 사원이 속한 부서가 영업, 개발, 기획, 재정인 경우 값 배정 규칙 보통 첫 문자 또는 전체를 대문자로 한다. (많은 프로그래머들이 인정하는 관습을 따르면 좋은 스타일의 프로그램이 된다.)

연습 문제

7.3 데이터베이스 사원 정보 검색 서비스 프로그램을 만들기로 하자. 사원 레코드는 이름, 사번, 부서, 전화번호, 근무평점의 다섯 필드 (레코드 집합이 데이터베이스가 됨) 이때 struct를 사용함이 현명

사원 레코드 char *를 String으로 부서는 enum 형으로 레코드는 struct 형으로

7.4.1 레코드 개수를 아는 경우

두 가지 검색 기능: 이름 검색과 사번 검색 편의성이 높을 수록 좋은 프로그램 (프로그래머가 약간 수고하면 된다.)

함수 keyword_type()이 검색 방식을 자동으로 구별해 준다.

연습 문제

7.4.1 레코드 개수의 자동 계산 앞에서는 프로그래머가 레코드 개수를 세어 프로그램 안에 적어 주었다. 이런 번거로운 일은 기계에게 맡겨라! (특히 레코드 개수가 자주 변하는 경우, 더욱 번거로움)

레코드 개수를 명시적으로 계산하지 않는 프로그램도 가능하다. 마지막에 NULL 레코드를 두어 끝 표시

연습 문제

7.5 프로그래밍 연습: 캔버스에 도형 그리기 캔버스에 여러 종류의 도형을 그려보자. (그림판과 비슷)

주요 자료 구조

main()과 함수 원형들

캔버스 초기화

도형을 읽어 들여 배열에 저장하는 함수 read_diagram() 약간의 생각이 필요하다. 어디에 어떻게 저장할 것인가? 포인터 배열과 동적 메모리 할당을 이용하여 메모리 낭비를 방지하기로 하자.

연습 문제