본문 바로가기
프로그래밍언어/C 언어

[혼자 공부하는 C언어] 2차원 배열과 배열 포인터

by khsnote22 2022. 12. 13.

http://www.yes24.com/Product/Goods/74269921?pid=123487&cosemkid=go15604913615239458&gclid=CjwKCAiAv9ucBhBXEiwA6N8nYEM80Xbshdpdinw0UCUYH0heogw0e-LnbDWCjAwrmIxw-FR_7g9dYRoCCt8QAvD_BwE 

 

혼자 공부하는 C 언어 - YES24

혼자 해도 충분하다! 1:1 과외하듯 배우는 C 프로그래밍 자습서이 책은 독학으로 C 언어를 배우는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을’ ‘어떻게’ 학

www.yes24.com


2차원 배열의 이름은 1차원 배열의 주소며 배열을 가리키는 포인터에 저장합니다.

배열 포인터는 배열을 가리키는 포인터로 2차원 배열의 이름을 저장할 수 있습니다.

#include <stdio.h>

int main(void)
{
    int ary[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    int (*pa)[4]; // int형 변수 4개의 배열을 가리키는 배열 포인터
    int i,j;
    
    pa = ary;
    for (i=0; i<3; i++)
    {
        for(j=0; j<4; j++)
        {
            printf("%5d", pa[i][j]);
        }
        printf("\n");
    }
    return 0;
}
#include <stdio.h>

void print_ary(int (*)[4]);

int main(void)
{
    int ary[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    
    print_ary(ary);
    
    return 0;
    
}

void print_ary(int (*pa)[4])
{
    int i, j;
    for (i = 0; i<3; i++)
    {
        for(j =0; j<4; j++)
        {
            printf("%5d",pa[i][j]);
        }
        printf("\n");
    }
}