new c programming with a workbook

12
New C Programming with a workbook Chapter 5 배배배 배배배 배배배 배배

Upload: lam

Post on 25-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

New C Programming with a workbook. Chapter 5 배열의 이해와 다차원 배열. 배열의 의미. 일반적인 변수를 사용하는 것에 있어서 불편한 점 변수 하나에 하나의 자료만 넣어야 함 즉 , 100 개의 자료가 필요하면 100 개의 변수가 필요됨 이는 변수이름이 100 개가 요구됨 초기화 과정에서도 변수 100 개마다 하나씩 초기화해야 함 배열 여러 개의 자료를 다룰 수 있는 변수 복잡하거나 많은 양의 자료를 다룰 때 거의 필수적 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: New C Programming with a workbook

New C Programming with a workbook

Chapter 5 배열의 이해와 다차원 배열

Page 2: New C Programming with a workbook

/12

배열의 의미 일반적인 변수를 사용하는 것에 있어서 불편한 점

변수 하나에 하나의 자료만 넣어야 함 즉 , 100 개의 자료가 필요하면 100 개의 변수가 필요됨 이는 변수이름이 100 개가 요구됨 초기화 과정에서도 변수 100 개마다 하나씩 초기화해야 함

배열 여러 개의 자료를 다룰 수 있는 변수 복잡하거나 많은 양의 자료를 다룰 때 거의 필수적 배열은 변수보다 훨씬 편하고 매우 유용한 개념이지만 변수보다

다루기가 까다로움

2

Page 3: New C Programming with a workbook

/12

배열의 의미 배열의 개념

3

Page 4: New C Programming with a workbook

/12

배열의 선언과 정의 1 차원 배열

1 차원 배열의 선언

1 차원 배열의 선언의 예

배열의 사용

4

데이터형태 배열명 [ 배열크기 ];데이터형태 배열명 [ 배열크기 ];

int Array[10];int Array[10];

배열명 [ 첨자 ] = 값 ; // 값을 배열에 대입변수 = 배열명 [ 첨자 ]; // 배열값을 변수에 대입

배열명 [ 첨자 ] = 값 ; // 값을 배열에 대입변수 = 배열명 [ 첨자 ]; // 배열값을 변수에 대입

첨자는 0 부터 시작

Page 5: New C Programming with a workbook

/12

배열의 선언과 정의 1 차원 배열

배열의 초기값 선언

배열의 초기값 선언의 예

5

데이터형태 배열명 [ 배열크기 ] = { 1 번째 원소의 초기값 , 2 번째 원소의 초기값 , ... };데이터형태 배열명 [ 배열크기 ] = { 1 번째 원소의 초기값 , 2 번째 원소의 초기값 , ... };

/* ( 형식 .1) */int Array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 크기와 초기값 수가 10 개

/* ( 형식 .2) */int Array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 초기값 수가 10 개 , 자동적으로 크기 10

/* ( 형식 .3) */int Array[10] = { 1, 2, 3, 4, 5 }; // 6 번째부터는 0 으로 초기화됨

/* ( 형식 .1) */int Array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 크기와 초기값 수가 10 개

/* ( 형식 .2) */int Array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 초기값 수가 10 개 , 자동적으로 크기 10

/* ( 형식 .3) */int Array[10] = { 1, 2, 3, 4, 5 }; // 6 번째부터는 0 으로 초기화됨

Page 6: New C Programming with a workbook

/12

배열의 선언과 정의 다차원 배열

배열은 변수와는 달리 다차원 구조를 가지고 있음⇒ 2 차원 배열 , 3 차원 배열 등등

2 차원 배열 이상 → 다차원 배열 “ 배열의 배열” 다차원 배열의 선언

6

/* ( 형식 .1) */데이터형태 배열명 [ 배열크기 ][ 배열크기 ];

/* ( 형식 .2) */데이터형태 배열명 [ 배열크기 ][ 배열크기 ][ 배열크기 ];

/* ( 형식 .3) */데이터형태 배열명 [ 배열크기 ][ 배열크기 ]…[ 배열크기 ];

/* ( 형식 .1) */데이터형태 배열명 [ 배열크기 ][ 배열크기 ];

/* ( 형식 .2) */데이터형태 배열명 [ 배열크기 ][ 배열크기 ][ 배열크기 ];

/* ( 형식 .3) */데이터형태 배열명 [ 배열크기 ][ 배열크기 ]…[ 배열크기 ];

Page 7: New C Programming with a workbook

/12

배열의 선언과 정의 다차원 배열

다차원 배열의 개념도

7

테이블 ( 행 , 열 )테이블 ( 행 , 열 ) 면 , 행 , 열면 , 행 , 열

Page 8: New C Programming with a workbook

/12

배열의 선언과 정의 다차원 배열

다차원 배열의 사용

8

/* ( 형식 .1) */배열명 [ 첨자 ][ 첨자 ] = 값 ;변수 = 배열명 [ 첨자 ][ 첨자 ];

/* ( 형식 .2) */배열명 [ 첨자 ][ 첨자 ][ 첨자 ] = 값 ;변수 = 배열명 [ 첨자 ][ 첨자 ][ 첨자 ];

/* ( 형식 .3) */배열명 [ 첨자 ][ 첨자 ]…[ 첨자 ] = 값 ;변수 = 배열명 [ 첨자 ][ 첨자 ]…[ 첨자 ];

/* ( 형식 .1) */배열명 [ 첨자 ][ 첨자 ] = 값 ;변수 = 배열명 [ 첨자 ][ 첨자 ];

/* ( 형식 .2) */배열명 [ 첨자 ][ 첨자 ][ 첨자 ] = 값 ;변수 = 배열명 [ 첨자 ][ 첨자 ][ 첨자 ];

/* ( 형식 .3) */배열명 [ 첨자 ][ 첨자 ]…[ 첨자 ] = 값 ;변수 = 배열명 [ 첨자 ][ 첨자 ]…[ 첨자 ];

Page 9: New C Programming with a workbook

/12

배열의 선언과 정의 다차원 배열

다차원 배열의 초기값 선언의 예

배열문의 실습 [ 교재 152~153page] 코드 5-1 참조

9

/* ( 형식 .1) */int Array[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };

/* ( 형식 .2) */int Array[2][3][2] = { { { 1, 2 } , { 3, 4 }, { 5, 6 } }, { { 7, 8 } , { 9, 10 }, { 11, 12 } } };

/* ( 형식 .3) */int Array[2][3] = { 1, 2, 3, 4, 5, 6 };

/* ( 형식 .1) */int Array[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };

/* ( 형식 .2) */int Array[2][3][2] = { { { 1, 2 } , { 3, 4 }, { 5, 6 } }, { { 7, 8 } , { 9, 10 }, { 11, 12 } } };

/* ( 형식 .3) */int Array[2][3] = { 1, 2, 3, 4, 5, 6 };

1 2 3

4 5 6

1 2 3

4 5 6

1 2

3 4

5 67 8

9 10

11 12

0

1

Page 10: New C Programming with a workbook

/12

문자열 상수와 문자배열 상수 문자열

여러 개의 문자들이 나열된 문장⇒ 예 > “I am a boy.”

C 는 자료형 중 문자열형이 존재하지 않음 ( 문자배열상수 존재 ) 보통은 이 문자배열 상수를 문자열 상수라 호칭

문자열 상수

printf 함수 호출 시 인자로 전달되는 것은 문자열 그 자체로 상수

⇒ 변수 이름이 없음⇒ 문자열의 내용 변경 불가능

10

printf("Hello World! \n");printf("Hello World! \n");

Page 11: New C Programming with a workbook

/12

문자열 상수와 문자배열 상수 문자열을 상수가 아닌 변수로 활용하기

배열이용 배열과 문자열의 관계

11

Page 12: New C Programming with a workbook

/12

문자열 상수와 문자배열 상수 문자열을 상수가 아닌 변수로 활용하기

문자열 배열 사용의 주의점

문자열 실습 [ 교재 156page] 코드 5-2 참조

12

/* 올바르지 않은 선언 */char Array[5] = "Array"; // 문자열의 경우 NULL 문자를 포함하게 된다 .

/* 올바르지 않은 선언 */char Array[5] = "Array"; // 문자열의 경우 NULL 문자를 포함하게 된다 .

문자 개수보다 항상 1 크게 선언해야 함- 배열 크기는 문자 개수 + 1문자 개수보다 항상 1 크게 선언해야 함- 배열 크기는 문자 개수 + 1