(자료구조) 3-1 배열
자료 구조 - 배열
1. 1차원 배열
1) 배열
- 자료형을 가진 자료들을 나열하여 메모리에 연속으로 저장하여 만든 자료들의 그룹
(1) 인덱스
- 배열의 요소를 간단히 구별하기 위해 사용하는 번호
- C에서 인덱스는 항상 0에서 시작
(2) 배열
- 모든 자료형에 대해서 배열로 구성 가능
- 구성 형태에 따라 1차원 배열, 2차원 배열, 3차원 배열…
2) 1차원 배열 선언 형식
- 선언 형식
자료형 배열이름 [배열 요소의 개수]
---- ------ --------------
(1) (2) (3)
(1) 자료형
- 배열의 자료형을 선언
- 배열 요소들은 모두 같은 자료형이어야 함
- 그 자료형이 배열의 자료형이 됨
(2) 배열 이름
- 일반 변수와 같은 규칙으로 배열의 이름을 선언
(2 - 1) 변수 이름 규칙
- 영문자, 숫자, 밑줄 사용
- 첫 글자는 숫자를 사용할 수 없음
(3) 배열 요수의 개수
- 배열요소의 개수는 배열의 크기를 의미
(4) 할당 크기
- 배열을 선언하면 메모리에 배열에 대한 공간 할당
- 할당크기 : (자료형에 대한 메모리 할당 크기 X 배열요소의 크기)
3) 배열 선언에 따른 메모리 할당 크기
- 여러 자료형의 배열 선언에 대한 형태와 의미
4) 1차원 배열의 초기화
- 배열의 선언과 함께 초기 값을 설정하는 작업
- 1차원 배열의 초기화 형식
자료형 배열이름[배열크기] = {초기값 리스트};
(1) 초기화 형식의 의미
- 배열의 크기를 지정하지 않아도 초기값 리스트를 보고 알아서 할당
int A[] = {1,2,3,4,5};
=
int A[5];
A[0] = 1;
A[1] = 2;
A[2] = 3;
A[3] = 4;
A[4] = 5;
int A[5] = {1,2,3};
=
int A[5];
A[0] = 1;
A[1] = 2;
A[2] = 3;
- 배열의 크기가 3이므로 뒤에 2개는 할당 X
int A[3] = {1,2,3,4,5};
=
int A[3];
A[0] = 1;
A[1] = 2;
A[2] = 3;
2. 문자 배열
1) 문자열이란?
- 문자의 나열을 의미하며, ” 와 “(큰따옴표) 사이에 표시
- 문자열을 저장하기 위해서는 문자열을 구성하는 문자들을 연속적으로 저장해야 하기 때문에 배열을 사용
- 배열의 자료형은 문자 자료형(char)이 됨
2) 문자 배열의 초기화
(1) 문자열을 그대로 지정하거나 초기값 문자리스트를 사용
- 문자 배열을 문자열 “String”으로 초기화하는 예
1. 문자열을 사용한 초기화
- \0 는 문자의 끝.
char s1[10] = "String";
2. 초기값 문자리스트를 사용한 초기화
char s2[10] = {'S','t','r','i','n','g'};
3. 다차원 배열
1) 다차원 배열이란?
- 2차원 이상의 배열을 의미
2) 2차원 배열의 선언
- 배열의 차수 만큼
배열크기
항목을 추가 - 2차원 배열의 선언 형식
자료형 배열 이름 [배열크기] [배열크기]
------ -------
(1) (2)
(1) 배열크기
- 행의 개수, 행 인덱스 크기
(2) 배열크기
- 행의 개수, 열 인덱스 크기
3) 2차원배열 논리적 구조와 물리적 구조
int i[2][3];
4) 2차원 배열 초기화
- 초기값의 지정형태는 초기값을 구분하여 지정하거나 1차원 배열처럼 초기값 리스트를
지정하여 순서대로 배열요소의 초기값으로 설정
(1) 2차원 배열의 초기화 예
int i[2][3] = {{1,2,3},{4,5,6}};
int i[2][3] = {1,2,3,4,5,6};
int i[ ][3] = {{1,2,3},{4,5,6}};
5) 3차원 배열의 선언
- 3차원 배열의 선언 형식
자료형 배열 이름 [배열 크기] [배열 크기] [배열 크기]
--------- ------- --------
(1) (2) (3)
(1) 배열크기
- 행의 개수, 면 인덱스 크기
(2) 배열크기
- 행의 개수, 행 인덱스 크기
(3) 배열크기
- 행의 개수, 열 인덱스 크기
6) 3차원배열 논리적 구조와 물리적 구조
int i[2][3][5]; // 2 * 3 * 4 = 24요소
7) 3차원 배열의 초기화 예
int i[2][3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},
{13,14,15,16},{17,18,19,20},{21,22,23,24}};
댓글남기기