• 역할

    • 열의 개수가 같은 이차원 배열의 메모리 주소를 저장하는 역할
    • 열의 개수가 고정된 임의의 행을 생성하여 다룰 수 잇다.
  • 형식 : 3개의 열을 가지는 경우

    데이터형 (*변수명)[열의 개수];

    → int (*ptr)[3];

  • 활용

    • 이차원 배열의 메모리 주소를 저장
    • 이차원 배열을 함수의 매개변수로 전달할 때
    • 열의 개수가 고정인 임의의 행을 다룰 때
  • 배열 포인터의 활용(1)

    이차원 배열을 다룰 때 사용

    // 이차원 배열을 다룰때 사용하는 예
    #include <stdio.h>
    
    int main(void){
        int array[2][3] = {{10, 20, 30}, {100, 200, 300}};
        int (*ptr)[3];
        int i;
    
        ptr = array;
    
        for(i = 0; i < 2; i++){
            printf("%d %d %d\\n", ptr[i][0], ptr[i][1], ptr[i][2]);
        }
        
        return 0;
    }
    
  • 배열 포인터의 활용(2)

    이차원 배열을 매개변수로 전달할 때

    //이차원 배열을 매개변수로 전달할 때
    #include <stdio.h>
    //                    행의 대한 정보
    void add(int (*ptr)[3], int count){
        int i, j;
        for(i = 0; i < count; i++){
            for(j = 0; j < 3; j++){
                ++ptr[i][j];
            }
        }
    }
    
    int main(void){
        int array[2][3] = {{1, 2, 3}, {4, 5, 6}};
        int i, j;
        
        add(array, 2);
        for(i = 0; i < 2; i++){
            for(j = 0; j < 3; j++){
                printf("%d", array[i][j]);
            }
            putchar('\\n');
        }
    
        return 0;
    }
    
  • 배열 포인터의 활용(3)

    열의 개수가 고정인 임의의 행을 생성