Trước tiên, chúng ta hãy hiểu mảng con trỏ trong ngôn ngữ lập trình C.
Mảng con trỏ:(tới chuỗi)
-
Nó là một mảng có các phần tử là ptrs cho phần bổ sung cơ sở của chuỗi.
-
Nó được khai báo và khởi tạo như sau -
char *a[ ] = {"one", "two", "three"}; Ở đây, [0] là một con trỏ đến phần bổ sung cơ sở của chuỗi "một".
a [1] là một con trỏ đến phần bổ sung cơ sở của chuỗi "hai".
a [2] là một con trỏ đến phần bổ sung cơ sở của chuỗi "ba".
Ưu điểm
Những ưu điểm của mảng con trỏ được giải thích bên dưới -
-
Bỏ liên kết mảng ký tự hai chiều, trong mảng chuỗi và trong mảng con trỏ tới chuỗi, không có kích thước bộ nhớ cố định để lưu trữ.
-
Các chuỗi chỉ chiếm bao nhiêu byte theo yêu cầu do đó không lãng phí dung lượng.
Ví dụ
Chương trình C trình bày khái niệm in mảng con trỏ thành chuỗi và cả địa chỉ được đưa ra bên dưới -
#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]);
}
} Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
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
Ví dụ 2
Hãy xem xét một ví dụ khác.
Dưới đây là một chương trình C trình bày khái niệm về mảng con trỏ đến chuỗi -
#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++;
}
} Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
The string is: TutorialPoint