Download presentation
Presentation is loading. Please wait.
1
C언어 (8) 정명희
2
배열 변수(variable) 배열 프로그램에서 어떤 값을 기억시키기 위한 저장 공간 오직 한 개의 값만을 저장
프로그램에서 필요한 만큼의 변수를 선언하여 사용 많은 수의 변수가 필요하거나 데이터를 순서대로 저장해야 한다면 변수를 사용하는 것이 불편 배열 하나의 이름으로 참조되는 같은 자료형을 갖은 메모리의 연속적인 공간 하나의 이름으로 참조되는 변수들의 집합 배열은 변수와 달리 번호가 붙은 저장 공간 번호로 구별되는 동일한 데이터 형의 연속된 기억 공간 배열의 원소의 개수는 한 개에서부터 메모리가 허락되는 범위 내에서의 무한대까지 선언 가능 모든 자료형 선언 가능 배열의 원소를 나타내는 첨자는 ‘0’번부터 시작.
3
배열의 선언 배열명과 변수의 개수, 변수의 자료형으로 선언. 변수의 개수만큼 연속된 기억공간 할당.
4
배열의 초기화 (1) 선언을 먼저하고 배열의 각 원소의 값을 할당하는 방법 선언과 동시에 값을 할당하는 방법
int a[3]; // 배열의 선언 a[0] = 10; // 배열의 초기화 a[1] = 15; a[2] = 20 선언과 동시에 값을 할당하는 방법 int a[3] = { 10, 15, 20 }; // 배열의 선언과 동시에 초기화 크기 할당하지 않고 초기화 하는 방법 int a[] = { 10, 15, 20 };
5
배열의 초기화 (2) 배열요소의 수보다 초기화 값이 적으면 남는 기억공간은 0으로 채워짐.
배열을 선언하면 처음에 쓰레기값이 존재 배열 선언시 초기화하면 배열요소의 개수를 생략가능 int nums[5] = {1, 3};
6
배열의 사용 ages배열의 세 번째 배열요소에 데이터를 저장하고 출력할 때
첨자는 0부터 시작하므로 배열요소의 개수가 5개이면 5를 첨자로 사용할 수 없다. int ages[5]; ages[2] = 20; printf(“세 번째 배열요소에 저장된 값은 : %d\n”, ages[2]);
7
배열의 종류 종류 선언 시 괄호의 수에 따라 1차원 배열, 2차원 배열, 3차원 배열 그리고 다차원 배열로 분류
2차원 배열은 2차원 디지털 이미지의 값을 표현하는 형태 3차원 배열은 3D 그래픽 데이터를 표현할 수 있는 형태 행우선 배열
8
배열과 주소체계
9
배열과 함수의 사용 함수의 인수로 배열을 사용할 경우 함수의 인자로 배열을 사용할 경우 함수의 결과값으로 배열을 반환하는 경우
배열의 이름만 사용 함수의 인자로 배열을 사용할 경우 배열을 표시하되 배열의 크기는 생략 함수의 결과값으로 배열을 반환하는 경우 포인터 이용 배열 이름은 포인터 상수이고 배열과 포인터는 컴퓨터 메모리의 주소를 나타낸다는 점에서 서로 유사.
10
문자배열의 선언과 사용 (1) 문자배열은 기본적으로 여러 개의 문자를 저장하기 위한 char형 배열.
4개의 문자를 저장할 수 있는 문자배열의 선언 배열요소에 문자를 저장하면 문자열이 만들어진다.
11
문자배열의 선언과 사용 (2) 널문자 필수 문자배열의 마지막에 널문자(‘\0’)가 없으면 저장된 문자열의 끝을 알 수 없다.
char word[50]; word[0]=‘L’; word[1]=‘o’; word[2]=‘v’; word[3]=‘e’; printf(“%s”, word); Love儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆 儆
12
문자배열의 선언과 사용 (3) 문자배열은 기본적으로 문자상수들로 초기화 함. 초기화하고 남는 배열요소는 0으로 채워짐.
char str[10] = {‘d’, ‘r’, ‘e’, a’, ‘m’, ‘\0’}; 초기화하고 남는 배열요소는 0으로 채워짐. char형 배열요소에 0이 저장되면 널문자가 되므로 결국 남는 배열요소는 널문자로 채워짐. 문자배열은 문자열상수로 직접 초기화 가능. 단, 선언과 동시에 초기화하는 경우만 가능. char str[80] = “dream”; str = “utopia”; // 배열 선언과 동시에 초기화 ( ○ ) // 배열에 문자열을 바로 대입할 수 없다. ( × )
13
scanf함수를 사용한 문자열의 입력 문자열을 입력 받을 때 %s변환문자열과 배열명을 scanf함수의 전달인자로 준다.
- word배열에 vitamin을 입력 받은 경우 printf(“문자열을 입력하세요 : ”); scanf(“%s”, word);
14
문자열 처리함수 (1) 문자열 처리하기 위한 다양한 문자열 처리 함수들 제공 문자열 처리 함수의 원형
<STRING.H> 헤더파일(Header File) 필요 문자열 처리 함수의 원형 size_t strlen( const char *string ); char *strcpy( char *strDestination, const char *strSource ); char *strcat( char *strDestination, const char *strSource ); int strcmp( const char *string1, const char *string2 ); .
15
문자열 처리함수 (2) 함 수 내 용 strcpy(to, from) 한 문자열을 다른 문자열에 복사
내 용 strcpy(to, from) 한 문자열을 다른 문자열에 복사 배열의 경계를 검사하지 않음 strcat(to, from) 문자열 결합. 배열의 경계를 검사하지 않음. strlen(str) 문자열의 길이, 즉 문자 수를 반환. null 문자는 포함되지 않음. strcmp(str1,str2) 두 문자열을 비교하여 다음 중 하나의 Return value를 반환. 0 : str1,str2 두 문자열이 같다. 양수 : str1이 str2 보다 크다. 음수 : str1이 str2 보다 작다. .
Similar presentations