Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어의 포인터와 2차원 배열 설명

<시간/>

포인터는 다른 변수의 주소를 저장하는 변수입니다.

기능

  • 포인터는 메모리 공간을 절약합니다.

  • 메모리 위치에 직접 접근하기 때문에 포인터의 실행 시간이 더 빠릅니다.

  • 포인터의 도움으로 메모리에 효율적으로 액세스합니다. 즉, 메모리가 동적으로 할당 및 해제됩니다.

  • 포인터는 데이터 구조와 함께 사용됩니다.

포인터 및 2차원 배열

2차원 배열에 대한 메모리 할당은 다음과 같습니다 -

int a[3] [3] = {1,2,3,4,5,6,7,8,9};

C 언어의 포인터와 2차원 배열 설명

C 언어의 포인터와 2차원 배열 설명

a[1] [2] = *(1234 + 1*3+2)
= *(1234 + 3+2)
= *(1234 + 5*4) // 4 is Scale factor
= * (1234+20)
= *(1254)
a[1] [2] = 6

예시

다음은 포인터와 2차원 배열을 위한 C 프로그램입니다 -

#include<stdio.h>
main ( ){
   int a[3] [3], i,j;
   int *p;
   clrscr ( );
   printf ("Enter elements of 2D array");
   for (i=0; i<3; i++){
      for (j=0; j<3; j++){
         scanf ("%d", &a[i] [j]);
      }
   }
   p = &a[0] [0];
   printf ("elements of 2d array are");
   for (i=0; i<3; i++){
      for (j=0; j<3; j++){
         printf ("%d \t", *(p+i*3+j));
      }
      printf ("\n");
   }
   getch ( );
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

enter elements of 2D array
1 2 3 4 5 6 7 8 9
Elements of 2D array are
1 2 3
4 5 6
7 8 9