Работа с массивом указателей
//------------------------------------------------------bk52-01.cpp
double extract 1(double d[], int n , int sz )
{ double x; int i;
x = d[n];
for (i=n; i<sz; i++)
d[i]=d[i+1];
return x;
}
double sort 1(double d[],int sz)
{ int i,k;
do
{
k = 0;
for (i=0; i<sz-1; i++)
if (d[i] > d[i+1])
{ double c; c = d[i];
d[i] = d[i+1]; d[i+1] = c; k=1;}
}
while (k); }
double *extract2(double *pd[] , int n)
{ double *x; int i;
x = pd[n];
for (i=n; pd[i]!=NULL; i++)
pd[i]=pd[i+1];
return x;
}
double sort 2(double *pd[])
{ int i,k;
do
{
k = 0;
for (i=0; pd[i+1]!=NULL;i++)
if (*pd[i] > *pd[i+1])
{double *c; c = pd[i];pd[i] = pd[i+1];
pd[i+1] = c; k = 1; }
}
while (k);
}
При работе с массивом указателей используются две конструкции:
- pd[i] -i-й указатель в массиве;
- *pd[i] -значение указуемой переменной по i-му указателю в массиве.