티스토리 뷰

C언어 배열 기초


배열이란 무엇인가?

배열이란 같은 자료형을 가진 연속된 메모리 공간으로 이루어진 자료구조이다. 이러한 배열은 같은 자료형을 가진 변수들이 여러 개 필요할 때 사용되며 많은 양의 데이터를 처리할 때 유용하다.

배열의 선언

배열을 사용하기 위해서는 선언이 필요하다. 자바와 C에서는 선언하는 방법이 다소 다르다.

int[] array = new int[10];

int array[10];

이러한 차이는 자바는 객체지향언어로 배열 또한 하나의 객체이지만, C는 절차지향언어로 메모리에 배열에 해당하는 메모리를 할당해줘야하기 때문에 나오는 차이이다.

배열의 메모리 할당

배열은 같은 자료형을 가진 연속된 메모리 공간이라고 하였다. char형은 1byte, int형은 4byte이다.

char charArray[5];
int intArray[5];

똑같이 5개의 요소를 가진 배열을 선언하여도 char형 배열은 1x5인 5바이트의 공간이, int형 배열은 4x5인 20바이트의 공간이 할당됩니다.

배열 선언 시 주의사항

  • 배열의 index는 0부터 시작하기 때문에 자칫 배열의 길이가 넘어가는 배열의 요소에 접근하려고 하면 에러가 나온다. 이 점 항상 유의해야한다.
  • int arr1[3] = {1,2,3}; // 가능
    int arr2[3];
    arr2[3]={1,2,3}; //불가능
    중괄호를 이용할 경우 arr1과 같이 한 줄로 선언과 동시에 초기화를 해줘야한다.
  • 배열 길이는 변수로 설정하면 안된다. 자바가 더 익숙한 사람들에게는 다소 낯설 수 있다. C의 경우 배열길이를 변수로 설정하려면 심볼릭 상수를 선언해서 사용해야한다.
    #include <stdio.h>
    #define MAX 5 // 심볼릭 상수 선언
    int main(void)
    {
        int a = 3;
        const int LENGTH = 20; //심볼릭 상수 선언
        int arr1[MAX];
        int arr2[LENGTH];
        int arr3[a];
    }

'기초부터 다지자! > C and C++' 카테고리의 다른 글

CLion 한글 깨짐현상 해결  (0) 2020.04.27
C언어 필드 폭 지정하기  (0) 2020.04.27
댓글