Array of Pointers
Array of pointers is simply an array which can store address.
Like we declare an array , array of pointers can be declared very easily.
int *p[10]; // will create an array of 10 pointers, each of which points to an integer.
We can make them point to integer variable
Let int a=10,b=20,c=30;
p[0]=&a;p[1]=&b;p[2]=&c; this will make the pointer array element p[0],p[1] and p[2] points to integer variables a,b and c respectively.
In general an array of pointers can be used to point to an array of data items, with each element of the pointer array pointing to an element of the data array. The advantage of an array of pointers is that the pointers can be reordered without moving the data items. Reordering pointers is relatively fast compared to reordering large data items such as data records or strings.Sorting an array of strings requires swapping the strings which is complex. The solution is to use to pointers and order the pointers based on the strings order.
The following program illustrate the use of array of pointers
#include <stdio.h>
void main()
{
char name[100][50];
char *ptr[100];
char *temp;
int i,j,n;
printf("enter number of names...");
scanf("%d",&n);
fflush(stdin);
printf("enter names\n");
for(i=0;i<n;i++)
{
gets(name[i]);
ptr[i]=name[i];
}
for (i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
if (strcmp(ptr[i],ptr[j])>0)
{
temp=ptr[i];
ptr[i]=ptr[j];
ptr[j]=temp;
}
}
printf("names in sorted order\n");
for(i=0;i<n;i++)
printf("%s\n",ptr[i]);
}
Comments
Post a Comment