(자료구조) 3-1 배열

업데이트:
2 분 소요

자료 구조 - 배열

1. 1차원 배열

1) 배열

  • 자료형을 가진 자료들을 나열하여 메모리에 연속으로 저장하여 만든 자료들의 그룹

(1) 인덱스

  • 배열의 요소를 간단히 구별하기 위해 사용하는 번호
  • C에서 인덱스는 항상 0에서 시작

(2) 배열

  • 모든 자료형에 대해서 배열로 구성 가능
  • 구성 형태에 따라 1차원 배열, 2차원 배열, 3차원 배열…

2) 1차원 배열 선언 형식

  • 선언 형식
    자료형 배열이름 [배열 요소의 개수]
    ---- ------ --------------
    (1)    (2)        (3)

(1) 자료형

  • 배열의 자료형을 선언
  • 배열 요소들은 모두 같은 자료형이어야 함
  • 그 자료형이 배열의 자료형이 됨

(2) 배열 이름

  • 일반 변수와 같은 규칙으로 배열의 이름을 선언
(2 - 1) 변수 이름 규칙
  • 영문자, 숫자, 밑줄 사용
  • 첫 글자는 숫자를 사용할 수 없음

(3) 배열 요수의 개수

  • 배열요소의 개수는 배열의 크기를 의미

(4) 할당 크기

  • 배열을 선언하면 메모리에 배열에 대한 공간 할당
  • 할당크기 : (자료형에 대한 메모리 할당 크기 X 배열요소의 크기)

3) 배열 선언에 따른 메모리 할당 크기

  • 여러 자료형의 배열 선언에 대한 형태와 의미

alt

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;

alt

  int A[5] = {1,2,3};

           =

        int A[5];
        A[0] = 1;
        A[1] = 2;
        A[2] = 3;

alt

  • 배열의 크기가 3이므로 뒤에 2개는 할당 X
  int A[3] = {1,2,3,4,5};

           =

        int A[3];
        A[0] = 1;
        A[1] = 2;
        A[2] = 3;

alt

2. 문자 배열

1) 문자열이란?

  • 문자의 나열을 의미하며, ” 와 “(큰따옴표) 사이에 표시
  • 문자열을 저장하기 위해서는 문자열을 구성하는 문자들을 연속적으로 저장해야 하기 때문에 배열을 사용
  • 배열의 자료형은 문자 자료형(char)이 됨

2) 문자 배열의 초기화

(1) 문자열을 그대로 지정하거나 초기값 문자리스트를 사용

  • 문자 배열을 문자열 “String”으로 초기화하는 예
1. 문자열을 사용한 초기화
  • \0 는 문자의 끝.
  char s1[10] = "String";

alt

2. 초기값 문자리스트를 사용한 초기화
  char s2[10] = {'S','t','r','i','n','g'};

alt

3. 다차원 배열

1) 다차원 배열이란?

  • 2차원 이상의 배열을 의미

2) 2차원 배열의 선언

  • 배열의 차수 만큼 배열크기 항목을 추가
  • 2차원 배열의 선언 형식
  자료형 배열 이름 [배열크기] [배열크기]
                ------  -------
                  (1)     (2)

(1) 배열크기

  • 행의 개수, 행 인덱스 크기

(2) 배열크기

  • 행의 개수, 열 인덱스 크기

3) 2차원배열 논리적 구조와 물리적 구조

  int i[2][3];

alt

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}};

alt

5) 3차원 배열의 선언

  • 3차원 배열의 선언 형식
  자료형 배열 이름 [배열 크기] [배열 크기] [배열 크기]
               ---------  -------  --------
                  (1)       (2)       (3)

(1) 배열크기

  • 행의 개수, 면 인덱스 크기

(2) 배열크기

  • 행의 개수, 행 인덱스 크기

(3) 배열크기

  • 행의 개수, 열 인덱스 크기

6) 3차원배열 논리적 구조와 물리적 구조

  int i[2][3][5]; // 2 * 3 * 4 = 24요소

alt alt

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}};

alt

댓글남기기