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