Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

อธิบายพอยน์เตอร์และอาร์เรย์สองมิติในภาษาซี


ตัวชี้เป็นตัวแปรที่เก็บที่อยู่ของตัวแปรอื่น

คุณสมบัติ

  • ตัวชี้ช่วยประหยัดพื้นที่หน่วยความจำ

  • เวลาดำเนินการของตัวชี้เร็วขึ้นเนื่องจากการเข้าถึงตำแหน่งหน่วยความจำโดยตรง

  • ด้วยความช่วยเหลือของพอยน์เตอร์ หน่วยความจำจะเข้าถึงได้อย่างมีประสิทธิภาพ กล่าวคือ หน่วยความจำได้รับการจัดสรรและจัดสรรคืนแบบไดนามิก

  • พอยน์เตอร์ใช้กับโครงสร้างข้อมูล

พอยน์เตอร์และอาร์เรย์สองมิติ

การจัดสรรหน่วยความจำสำหรับอาร์เรย์สองมิติมีดังนี้ -

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

อธิบายพอยน์เตอร์และอาร์เรย์สองมิติในภาษาซี

อธิบายพอยน์เตอร์และอาร์เรย์สองมิติในภาษาซี

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

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม 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