Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.

Slides:



Advertisements
Similar presentations
Chapter 12 배열. 2 배열  의미  배열은 연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조로 그 사용이 간편  배열은 동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조 일반 변수가 단독주택이라면 배열은 아파트  크기  배열의.
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
제2장 C 언어의 확장 C++(1).
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
Part 11 문자열 ©우균, 창병모 ©우균, 창병모.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
8. 배열.
제 9 장 구조체와 공용체.
-Part2- 제3장 포인터란 무엇인가.
3. printf()와 데이터 형식.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
5장 배열 작성자 : 변재현.
누구나 즐기는 C언어 콘서트 제8장 배열.
5장. 참조 타입.
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
제 3장. C보다 나은 C++ II.
Name Title Company Name
C 프로그래밍.
Heesang kim PL/SQL 3 Heesang kim.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express Slide 1 (of 32)
2주차: 변수, 수식, Control Flow.
제8장 배열 1부 8.1 배열 8.2 배열의 초기화 8.3 배열의 응용 8.4 정렬과 탐색 8.5 다차원 배열.
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
6장. printf와 scanf 함수에 대한 고찰
14장. 포인터와 함수에 대한 이해.
11장. 1차원 배열.
처음으로 배우는 C 프로그래밍 제4부 복합 데이터 형 제 8 장 배열, 주소, 포인터.
C 2장. C 프로그램 시작하기 #include <stdio.h> int main(void) { int num;
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
처음으로 배우는 C 프로그래밍 제4부 복합 데이터 형 제 7 장 배열.
5장 배열과 문자열 C 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
8주차: Strings, Arrays and Pointers
Chapter 08. 함수.
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
[ 단원 04 ] 반복과 배열.
에어 PHP 입문.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
구조체(struct)와 공용체(union)
Numerical Analysis Programming using NRs
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 4 장 Record.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
Chapter 09. 배열.
13. 포인터와 배열! 함께 이해하기.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

Chapter 12. 배열

배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조

배열의 선언  자료형 배열이름 [ 배열크기 ]; int array[100]; int array[0]; int array[1]; … int array[99];

배열의 원소와 첨자 배열 원소  배열에 저장되는 각각의 항목  배열 원소는 첨자 (index) 를 사용하여 참조 예. 정수형 10 개짜리 배열 score int score[10]; score 의 첫번째 원소 = score[0]; 배열 첨자는 유효한 값의 범위를 벗어나는 경우, 문제 발생 첨자 범위 : 0 ~ ( 배열크기 -1)

배열의 초기화 값의 초기화 int array[5] = {10, 20, 30, 40, 50}; int array[0] = {10}; int array[1] = {20}; int array[2] = {30}; int array[3] = {40}; int array[4] = {50};

배열 초기화 배열 초기화 방법  배열의 초기화에서 배열의 크기는 생략 가능 이 경우, 초기값을 넣는 개수에 따라 배열의 크기가 결정  지정된 배열의 크기가 초기 값 개수보다 크면 나머지 지 정되지 않은 원소의 초기 값은 자동으로 모두 0 으로 저 장 int array[] = {10, 20};  int array[0] = {10}; int array[1] = {20}; int array[4] = {10, 20};  int array[0] = {10}; int array[1] = {20}; int array[2] = {0}; int array[3] = {0};

배열의 크기 int array1[5] = {1, 2, 3, 4, 5}; // 배열의 크기 = 5 int array2[] = {1, 2, 3, 4, 5, 6, 7, 8, …}; // 배열의 크기 = ? // sizeof 함수 이용 // 배열의 전체 사이즈 / int 형 사이즈 = sizeof(array2) / sizeof(int)

다차원 배열 m X n 배열  a[0][]  a[1][] 실제 메모리

다차원 배열 초기화 다차원 배열 초기화 유의사항  이차원 배열을 선언하는 경우, 초기화를 하지 않고 선언 만 한다면 배열의 크기는 행과 열, 두 개 모두 반드시 지 정되어야 한다.  선언을 하면서 초기 값을 저장하면 첫 번째 크기는 지정 하지 않을 수 있다.  다음의 경우는 에러 int array[2][4] = {10, 30, 40, 50, 1, 3, 0, 0}; int array[][4] = {10, 30, 40, 50, 1, 3, 0, 0}; int array[2][4] = {{10, 30, 40, 50}, {1, 3, 0, 0}}; int array[][4] = {{10, 30, 40, 50}, {1, 3, 0, 0}}; //  이 경우 다차원 배열의 범위를 알 수 없다. int array[][] = {10, 30, 40, 50, 1, 3, 0, 0};

다차원 배열 m X n X l 삼차원 배열  3 차원 배열의 각 원소를 참조하기 위해 3 개의 첨자를 이용  3 차원 배열 초기화 int array[2][2][2] = {1,2,3,4,5,6,7,8}; int array[0][0][0] = {1}; int array[0][0][1] = {2}; int array[0][1][0] = {3}; int array[0][1][1] = {4}; int array[1][0][0] = {5}; int array[1][0][1] = {6}; int array[1][1][0] = {7}; int array[1][1][1] = {8};

함수 인자로서의 배열 #include double average(double array[], int size); int main() { double score[6] = { 98.12, 54.43, 88.91, 76.33, 64.91, }; double avg; avg = average(score, 6); printf(" 평균은 : %f\n", avg); return 1; } double average(double array[], int size) { double sum = 0.0; int i; for (i = 0; i < size; i++) { sum += array[i]; } return (sum/size); }

문자열 문자열 (string)  문자들의 배열  “” 로 둘러싸서 표기 예. “C language”  C 언어에서는 문자열에 대한 자료형은 없음  1 차원 문자 배열을 이용  문자열을 저장하는 배열의 크기는 반드시 저장되는 문자 의 개수보다 1 이 커야 함 문자열의 마지막은 널 문자 (null character, ‘\0’) 가 저장됨

문자열의 초기화 다음과 같이 직접 문자열을 초기화 가능 문자의 배열 형태로 초기화할 때 주의 !!  배열의 마지막에 널문자 ‘\0’ 를 꼭 넣어주어야함 char c[4] = {‘a’, ‘b’, ‘c’, ‘\0’};

문자열의 출력 문자열 출력을 위한 printf 변환 명세 - %s  배열 이름이 문자열 자체를 나타낸다고 생각  배열의 첨자를 이용하여 문자 각각을 출력  문자이기 때문에 printf 의 변환 명세 %c 사용 char s[10] = “C Language!”; printf(“%s”, s); int i = 0; char s[10] = “C Language!”; for(i=0; i<10; i++) { printf(“%c”, s[i]); }

문자열의 입력 함수 scanf 를 이용한 문자열 입력  입력받을 배열 명 앞에 ‘&’ 를 붙이지 않는다 !  공백 ( 스페이스 ) 이 없는 문자열을 표준입력으로 받아 문 자 배열에 저장 함수 scanf() 에서 %s 의 변환 명세로 입력 받는 문자열은 문자가 시작되고 공백이 나오기 이전까지의 문자열을 입력받음 한글을 입력하려면 2 바이트가 필요하므로 충분한 저장공간을 확 보 char name[20] = {‘\0’}; printf(“ 이름을 입력하세요 ; “); scanf(“%s”, name); printf(“ 나의 이름은 %s 입니다. \n”, name);

문자열 입출력에 특성화된 함수 함수 gets, puts  gets( 문자열 ) – 문자열 입력 함수  puts( 문자열 ) – 문자열 출력 함수한 줄에 입력되는 모든 문자열을 입력하 고 출력하기 위한 함수가 gets() 와 puts()  stdio.h 시스템 헤더 파일에 정의되어 있음  함수 gets() 는 공백단위 없이 키보드의 엔터 (Enter) 명령이 들어올때 까지 입력 받음 char name[20] = {‘\0’}; printf(“ 이름을 입력하세요 ; “); gets(name); puts(name);

실습 – 배열 시프트 문자형 크기 10 인 배열 array 를 선언  array 의 초기 값은 “abcdefghij”  array 배열의 값을 왼쪽으로 한칸 shift 하여 출력 하는 shiftArray 함수 구현 예. 왼쪽으로 한칸 shift “abcedfghij”  “bcdefghija”