อันดับแรก ให้เราเข้าใจว่าอาร์เรย์ของพอยน์เตอร์ในภาษาการเขียนโปรแกรม C คืออะไร
อาร์เรย์ของพอยน์เตอร์:(เป็นสตริง)
-
เป็นอาร์เรย์ที่มีองค์ประกอบเป็น ptrs ในการเพิ่มฐานของสตริง
-
มีการประกาศและเริ่มต้นดังนี้ -
char *a[ ] = {"one", "two", "three"}; ที่นี่ a[0] คือตัวชี้ไปยังการเพิ่มฐานของสตริง "หนึ่ง"
a[1] เป็นตัวชี้ไปยังการเพิ่มฐานของสตริง "สอง"
a[2] เป็นตัวชี้ไปยังการเพิ่มฐานของสตริง "สาม"

ข้อดี
ข้อดีของอาร์เรย์ของพอยน์เตอร์อธิบายไว้ด้านล่าง -
-
ยกเลิกการเชื่อมโยงอาร์เรย์สองมิติของอักขระ ในอาร์เรย์ของสตริง และในอาร์เรย์ของพอยน์เตอร์กับสตริง ไม่มีขนาดหน่วยความจำคงที่สำหรับการจัดเก็บ
-
สตริงใช้ไบต์ได้มากเท่าที่ต้องการเท่านั้น จึงไม่เปลืองเนื้อที่
ตัวอย่าง
โปรแกรม C ที่แสดงแนวคิดของการพิมพ์อาร์เรย์ของพอยน์เตอร์ไปยังสตริงและที่อยู่แสดงไว้ด้านล่าง -
#include<stdio.h>
#include<string.h>
void main(){
//Declaring string and pointers, for loop variable//
int i;
char *a[5]={"One","Two","Three","Four","Five"};
//Printing values within each string location using for loop//
printf("The values in every string location are : \n");
for(i=0;i<5;i++){
printf("%s\n",a[i]);
}
//Printing addresses within each string location using for loop//
printf("The address locations of every string values are : \n");
for(i=0;i<5;i++){
printf("%d\n",a[i]);
}
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
The values in every string location are: One Two Three Four Five The address locations of every string values are: 4210688 4210692 4210696 4210702 4210707
ตัวอย่างที่ 2
ลองพิจารณาอีกตัวอย่างหนึ่ง
ด้านล่างนี้เป็นโปรแกรม C ที่แสดงแนวคิดของอาร์เรย์ของพอยน์เตอร์ไปยังสตริง -
#include<stdio.h>
#include<string.h>
void main(){
//Declaring string and pointers//
char string[10]="TutorialPoint";
char *pointer = string;
//Printing the string using pointer//
printf("The string is : ");
while(*pointer!='\0'){
printf("%s",*pointer);
pointer++;
}
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
The string is: TutorialPoint