Computer >> Máy Tính >  >> Lập trình >> lập trình C

Giải thích con trỏ và mảng hai chiều bằng ngôn ngữ C

Con trỏ là một biến lưu trữ địa chỉ của một biến khác.

Tính năng

  • Con trỏ tiết kiệm dung lượng bộ nhớ.

  • Thời gian thực thi của con trỏ nhanh hơn vì truy cập trực tiếp vào vị trí bộ nhớ.

  • Với sự trợ giúp của con trỏ, bộ nhớ được truy cập hiệu quả, tức là bộ nhớ được cấp phát và phân bổ động.

  • Con trỏ được sử dụng với cấu trúc dữ liệu.

Con trỏ và mảng hai chiều

Cấp phát bộ nhớ cho một mảng hai chiều như sau -

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

Giải thích con trỏ và mảng hai chiều bằng ngôn ngữ C

Giải thích con trỏ và mảng hai chiều bằng ngôn ngữ C

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

Ví dụ

Sau đây là chương trình C cho con trỏ và mảng hai chiều -

#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 ( );
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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