본문 바로가기
Major/#C언어 (C Programming)

1차원배열(1 Dimensional Array), 다차원배열(Multi-dimensional array

by Bright_Between 2023. 5. 6.
반응형

C언어에서 배열은 하나 이상의 변수를 저장하기 위해 사용되는 데이터 구조입니다. 배열은 인덱스를 사용하여 각 요소에 접근할 수 있으며, 일반적으로 물리적으로 연속된 메모리 공간에 할당됩니다. C언어에서는 1차원 배열과 다차원 배열을 모두 지원합니다.

 

 


## 1차원 배열

1차원 배열은 하나의 인덱스로 각 요소에 접근할 수 있는 배열입니다. 예를 들어, 다음과 같이 선언할 수 있습니다.

int numbers[5]; // 5개의 int형 변수를 저장할 수 있는 1차원 배열


위의 예제에서 `numbers`는 5개의 `int`형 변수를 저장할 수 있는 배열입니다. 배열 요소에 접근할 때는 인덱스를 사용합니다. 첫 번째 요소에 접근하려면 `numbers[0]`과 같이 사용합니다. 마지막 요소에 접근하려면 `numbers[4]`와 같이 사용합니다. 인덱스는 0부터 시작하며, 배열 크기를 넘어서면 예기치 않은 결과가 발생할 수 있습니다.

1차원 배열을 초기화하는 방법은 여러 가지가 있습니다. 모든 요소를 0으로 초기화하려면 다음과 같이 선언합니다.

int numbers[5] = {0};

 

또는 특정한 값을 가지는 요소로 초기화하려면 다음과 같이 할 수 있습니다.

 

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

 

 



## 다차원 배열

다차원 배열은 2차원, 3차원 등 여러 차원으로 구성된 배열입니다. 다차원 배열은 행과 열의 개념이 있으며, 각 차원마다 인덱스를 사용하여 접근할 수 있습니다. 예를 들어, 다음과 같이 2차원 배열을 선언할 수 있습니다.

int matrix[3][4]; // 3행 4열의 2차원 배열


위의 예제에서 `matrix`는 3행 4열의 `int`형 변수를 저장할 수 있는 2차원 배열입니다. 배열 요소에 접근할 때는 두 개의 인덱스를 사용합니다. 첫 번째 인덱스는 행을, 두 번째 인덱스는 열을 나타냅니다. 예를 들어, `matrix[1][2]`는 두 번째 행 세 번째 열의 요소를 나타냅니다.

다차원 배열을 초기화하는 방법도 1차원 배열과 유사합니다. 모든 요소를 0으로 초기화하려면 다음과 같이 선언합니다.

 

 

int matrix[3][4] = {0};


또는 특정한 값을 가지는 요소로 초기화하려면 다음과 같이 할 수 있습니다.

int matrix[3][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};


위의 예제에서는 각 행마다 중괄호로 묶은 요소를 나열하여 초기화합니다. 첫 번째 행은 1부터 4까지의 값을 가지며, 두 번째 행은 5부터 8까지의 값을 가지며, 세 번째 행은 9부터 12까지의 값을 가집니다.

3차원 배열도 2차원 배열과 유사하게 선언할 수 있습니다. 예를 들어, 다음과 같이 3차원 배열을 선언할 수 있습니다.

 

int cube[2][3][4]; // 2면 3행 4열의 3차원 배열


위의 예제에서 `cube`는 2면 3행 4열의 `int`형 변수를 저장할 수 있는 3차원 배열입니다. 배열 요소에 접근할 때는 세 개의 인덱스를 사용합니다. 첫 번째 인덱스는 면을, 두 번째 인덱스는 행을, 세 번째 인덱스는 열을 나타냅니다.

배열은 메모리 공간을 연속적으로 사용하기 때문에 대용량 데이터를 처리할 때 효율적입니다. 하지만 배열의 크기가 커지면 스택 메모리에 할당하기 어려울 수 있습니다. 이 경우에는 동적 메모리 할당을 사용하여 해결할 수 있습니다.

배열은 C언어에서 매우 중요한 데이터 구조 중 하나입니다. 배열을 효율적으로 사용하면 프로그램의 성능을 향상시킬 수 있습니다.

반응형

댓글