배열

arr

배열은 여러 변수를 메모리의 연속적인 공간에 저장하는 데이터 타입입니다

메모리의 연속적으로 저장하는 방식이라, 이후 포인터 개념을 공부할 때 포인터와 헷갈릴 수 있습니다.

다양한 데이터를 저장하기 위한 용도로 주로 활용됩니다.


선언

array

배열의 선언은변수의 선언과 크게 다르지 않습니다.

배열의 길이를 지정하지 않으면 선언이 되지 않습니다.

int arr[10];

초기화

int array[3] = {1, 2, 3}; 

중괄호 {}를 활용하여 배열을 초기화 할 수 있습니다.


int array[] = {1, 2, 3, 4}; 

초기화 과정에서, 길이를 지정하지 않고 초기화를 하는 경우, 자동으로 길이가 정해집니다.


int arr[10] = {1, 2, 3, 4, 5};

길이가 지정된 상태에서 초기화를 진행할때, 해당 순번 배열을 초기화 하지 않는다면, 자동으로 0으로 초기화 됩니다.


int array[10] = {0};

모두 0으로 초기화 하기 위해선 중괄호에 0을 입력하여 초기화 할 수 있습니다.


활용

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

for (int i = 0 ; i < 4; i++) {
		printf("%d\n", array[i]);
}

배열을 활용하는 방법은 변수활용하는 방식과 거의 동일합니다.

배열에 인덱스를 넣어 해당 순번 데이터로 접근할 수 있습니다.

이러한 특성 때문에, 반복문에서 효율적으로 활용할 수 있습니다.


인덱스는 0부터 시작됩니다.

데이터의 접근을 위한 숫자를 인덱스라고 합니다.

인덱스는 0부터 시작되어, 배열의 길이 - 1까지 사용할 수 있습니다.

갯수와 인덱스는 다른 개념으로 생각을 해두시면 편할 것 같습니다.

만약 인덱스가 지정된 값을 초과하면, 에러가 발생하니 주의해야 합니다.

2차원 배열

int array[3][3];
int arr[][] = {{1, 2, 3}, {1, 2, 3}};

배열 내부 데이터를 배열로 활용하는 방식입니다.

정말 많은 데이터를 활용할 수 있어 2차원 데이터를 다루기 편합니다.


int array[3][3] = {{1, 2, 3}, {1, 2, 3}};

printf("%d\n", array[0][1]);

사용방식도 일반 배열과 크게 다르지 않습니다.

배열 내부에 배열이 있다는 개념을 이해하시면 쉽게 이해할 수 있을 것 같습니다.

2차원 배열의 활용

int map[5][5] = {
{1, 2, 3, 4, 5}, 
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15}, 
{16, 17, 18, 19, 20}, 
{21, 22, 23, 24, 25}
};

for (int i = 0; i < 5; i++) {
  for (int j = 0; j < 5; j++) {
    printf("%d "map[i][j]);
  }
  printf("\n");
}

2차원 배열에 저장된 데이터를 2차원 방식으로 출력하는 예제입니다.



💡 지적 환영합니다

Comments