컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -

Slides:



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

Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
1 구조체 윤 홍 란 컴퓨터 프로그래밍 2 구조체 정의  구조체란 ? o 서로 다른 형의 변수들을 하나로 묶어주는 mechanism. (cf. 배열 : 같은 형의 변수들을 하나로 묶어주는 mechanism) o 예 : 카드의.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
제 9 장 포인터.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
-Part2- 제3장 포인터란 무엇인가.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
자료 구조: Chapter 3 (2)구조체, 포인터
개정판 누구나 즐기는 C언어 콘서트 제9장 포인터 출처: pixabay.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
5장 배열 작성자 : 변재현.
누구나 즐기는 C언어 콘서트 제8장 배열.
5장. 참조 타입.
C 프로그래밍.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
포인터 활용 포인터 활용.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express Slide 1 (of 32)
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express.
제8장 배열 1부 8.1 배열 8.2 배열의 초기화 8.3 배열의 응용 8.4 정렬과 탐색 8.5 다차원 배열.
14장. 포인터와 함수에 대한 이해.
11장. 1차원 배열.
C 8장. 포인터 #include <stdio.h> int main(void) { int num;
처음으로 배우는 C 프로그래밍 제4부 복합 데이터 형 제 8 장 배열, 주소, 포인터.
C#.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
27장. 모듈화 프로그래밍.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
포인터 1차원 배열과 포인터 2차원 배열과 포인터 문자열 배열과 포인터 포인터 배열
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
처음으로 배우는 C 프로그래밍 제4부 복합 데이터 형 제 7 장 배열.
5장 배열과 문자열 C 프로그래밍.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
8주차: Strings, Arrays and Pointers
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
제 6 장 함수(functions).
7주차: Functions and Arrays
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
Summary of Pointers and Arrays
Numerical Analysis Programming using NRs
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
13. 포인터와 배열! 함께 이해하기.
Pointers summary.
함수 정의, void 자료형 함수 원형선언 함수 호출 변수 영역 규칙 재귀 함수
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 - 김선균 (kyun@kangwon.ac.kr) 2017. 05. 24

< 목 차 > Review 배열의 개요 배열의 복사 & 비교 & 활용 배열이 함수의 인수(매개 변수)인 경우 정렬 배열의 정의 배열 원소 사용 예제 배열의 복사 & 비교 & 활용 배열이 함수의 인수(매개 변수)인 경우 정렬 선택정렬(Selection Sort) 버블정렬(Bubble Sort) 다차원 배열 – 2차원 포인터

0. Review 지역 변수 전역 변수 중괄호( { } ) 내에서 선언된 변수로 괄호 내에서만 사용 가능 괄호를 벗어나면 지역변수는 메모리에서 사라진다. 전역 변수 함수 이외의 공간에 선언된 변수로 코드 내에 어느 곳에서든 접근이 가능 지역변수와 전역변수 이름이 똑같을 때는 지역변수를 우선 보통의 경우 헤더파일( ex. #include <stdio.h> ) 아래에 선언한다.

0. Review 지역변수와 전역변수의 이름이 같을 때?

0. Review 지역변수와 전역변수의 중간 형태 : static 변수 int main(void) { static int number; return 0; }

0. Review static 변수의 사용 예제

0. Review 재귀 함수(순환 함수)는 함수가 자기 자신을 호출하면서 문제를 해결하는 함수 자기 자신 호출 시 함수 내에는 종료되기 위한 조건이 들어가야 한다.

0. Review Factorial 계산하는 프로그래밍 – 재귀 (순환) 함수

0. Review 배열의 구조 – 같은 자료형을 가지는 변수들의 모임 배열의 선언은 아래와 같다. 인덱스(배열 번호)는 항상 0부터 시작한다. 즉, 위와 같이 선언되었을 때 grade[0]부터 grade[9]까지 존재한다.

1. 배열이 함수의 인수인 경우 ( 1/2 )

1. 배열이 함수의 인수인 경우 ( 2/2 )

2. 정렬 – 선택 정렬(Selection Sort) 선택 정렬 – 정렬이 안된 숫자 중에서 최소 값을 선택하여 배열의 첫 번째 요소와 교환

2. 정렬 – 선택 정렬(Selection Sort) 선택 정렬 프로그래밍

2. 정렬 – 선택 정렬(Selection Sort)

2. 정렬 – 버블 정렬(Bubble Sort) 버블 정렬 인접한 레코드가 순서대로 되어 있지 않으면 교환 전체가 정렬될까지 비교/교환 계속

2. 정렬 – 버블 정렬(Bubble Sort) 버블 정렬 프로그래밍

2. 정렬 – 버블 정렬(Bubble Sort) 버블 정렬 프로그래밍

3. 다차원 배열 – 2차원 int s[10]; // 1차원 배열 int s[3][10]; // 2차원 배열

3. 다차원 배열 – 2차원 2차원 배열을 초기화 하는 대표적인 방법 int s[ ][5] = {   {  0,  1,  2,  3,  4 }, // 첫 번째 행의 원소들의 초기값   { 10, 11, 12, 13, 14 }, // 두 번째 행의 원소들의 초기값   { 20, 21, 22, 23, 24 } // 세 번째 행의 원소들의 초기값 };

3. 다차원 배열 – 2차원 2차원 배열은 메모리상에서 1차원적으로 구현된다.

3. 다차원 배열 – 2차원

4. 포인터의 개념 포인터 변수에는 값을 저장... 포인터에는 주소를 저장 주소 – 컴퓨터 상에서 메모리의 위치 주소를 계산하는 연산자 : & 변수 i의 주소 : &i 포인터의 생성 : [자료형] *[이름] = [주소 값]; 포인터는 꼭 선언과 동시에 초기화가 이루어져야 한다. ex) int a; // 변수의 생성 ex) int *pa = &a; // 포인터 생성 및 초기화

4. 포인터 #include <stdio.h> i의 주소 : 4290772068 int main(void) { int i = 10; int *pi = &i; // int형 포인터 char c = 69; char *pc = &c; // char형 포인터 float f = 12.3; float *pf = &f; // float형 포인터 printf(“i의 주소 : %u\n”, &i); printf(“c의 주소 : %u\n”, &c); printf(“f의 주소 : &u\n”, &f); printf(“포인터 pi의 크기 : %u\n”, sizeof(pi)); printf(“포인터 pc의 크기 : %u\n”, sizeof(pc)); printf(“포인터 pf의 크기 : %u\n”, sizeof(pf)); return 0; } i의 주소 : 4290772068 c의 주소 : 4290772067 f의 주소: 4290772060 포인터 pi의 크기: 4 포인터 pc의 크기 : 4 포인터 pf의 크기 : 4

4. 포인터 간접 참조 연산자( * ) 포인터가 가리키는 값을 가져옴 포인터 생성 시 쓰는 *과는 다른 의미 포인터의 선언과 간접 참조 연산자의 차이점 포인터의 선언 : [자료형] *[이름] = [주소 값] 간접 참조 연산자 : *[포인터 이름]

4. 포인터 #include <stdio.h> int main(void) { int i = 3000; int *pi = &i; printf(“&i = %u\n”, &i); printf(“pi = %u\n”, pi); printf(“i = %u\n”, i); printf(“pi = %u\n”, *pi); return 0; } &i = 1245024 pi = 1245024 i = 3000 *pi = 3000

4. 포인터 #include <stdio.h> int main(void) { c = B char c = ‘A’; int i = 10000; double d = 6.78; char *pc = &c; int *pi = &i; double *pd = &d; (*pc)++; *pi = *pi + 1; *pd += 1; printf(“c = %c\n”, c); printf(“i = %d\n”, i); printf(“d = %f\n”, d); return 0; } c = B i = 10001 d = 7.780000

4. 포인터 #include <stdio.h> int main(void) i = 10, pi = 4290777068 { int i = 10; int *pi = &i; printf(“i = %d, pi = %u\n”, i, pi); (*pi)++; *pi++; return 0; } i = 10, pi = 4290777068 i = 11, pi = 4290777068 i = 11, pi = 4290777072

대과제 #1 작성한 학생은 kyun@kangwon.ac.kr로 보내주세요 메일 제목 : [학번][이름]대과제#1 5월 30일 까지 제출해주세요

4. Q&A