본문 바로가기
IT/c언어

C 언어 2차원 배열 포인터

by 뉴코딩맨 2023. 7. 15.
2차원 배열 포인터는 C 언어에서 변수의 포인터 타입을 저장하는 배열입니다. 이는 2차원 배열에 저장된 변수가 포인터 타입을 가지고 있다는 것을 의미합니다. 2차원 배열 포인터를 사용하면 메모리에 대한 유연한 접근이 가능하며, 다차원 데이터를 효율적으로 처리할 수 있습니다.
 
 

2차원 배열 포인터의 선언

2차원 배열 포인터는 다음과 같은 방법으로 선언할 수 있습니다.
 
타입 (*이름)[열의 개수];

 

 
위의 선언에서 타입은 포인터가 가리킬 변수의 타입을 의미하고, 이름은 배열 포인터의 이름입니다. 열의 개수는 2차원 배열의 열의 개수를 의미합니다.
 

예제와 설명

아래의 예제를 통해 2차원 배열 포인터의 동작을 이해해보겠습니다.
 
#include <stdio.h>

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

    int (*ptr)[4] = arr;

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d ", *(*(ptr + i) + j));
        }
        printf("\n");
    }

    return 0;
}

 

위의 예제에서는 arr이라는 2차원 배열을 선언하고 초기화합니다. 그리고 ptr이라는 2차원 배열 포인터를 선언하고 arr을 가리키게 합니다. 이후에 중첩된 반복문을 사용하여 배열 포인터를 통해 2차원 배열의 요소에 접근하고 출력합니다.
 
 

결과 설명

위의 예제를 실행하면 다음과 같은 결과가 출력됩니다.
 
1 2 3 4
5 6 7 8
9 10 11 12

 

2차원 배열 arr에 저장된 요소들이 배열 포인터 ptr을 통해 접근되어 출력됩니다. 각 행의 요소는 *(ptr + i)를 통해 접근되고, 각 열의 요소는 *(*(ptr + i) + j)를 통해 접근됩니다.
 

결론

C 언어에서 2차원 배열 포인터는 다차원 데이터를 유연하게 처리하기 위한 중요한 개념입니다. 배열 포인터를 사용하여 메모리에 대한 유연한 접근이 가능하며, 다차원 배열의 요소에 효율적으로 접근할 수 있습니다. 2차원 배열 포인터를 활용하여 다양한 알고리즘 및 데이터 구조를 구현할 수 있으므로, C 프로그래밍에서 잘 이해하고 활용할 수 있어야 합니다.
 

'IT > c언어' 카테고리의 다른 글

C 언어 puts fputs  (0) 2023.07.17
C 언어 putchar, fputc 함수  (0) 2023.07.16
C언어 void 포인터  (0) 2023.07.14
C언어 함수 포인터  (0) 2023.07.14
C언어 이중포인터  (0) 2023.07.14

댓글