Информатика и технология программирования

       

Указатель - результат функции


Функция в качестве результата может возвращать указатель. В этом случае она обычно "выбирает" некоторую переменную из имеющихся или же "создает" ее (см.5.1). В следующем простом примере функция возвращает указатель на минимальный элемент массива, переданного в виде формального параметра:


// Результат функции - указатель на целое


int *min(int A[], int n)
{
int *pmin, i; // Рабочий указатель, содержащий результат


for (i=1, pmin=A; i&#60n; i++)
if (A[i] &#60 *pmin) pmin = &#38A[i];
return(pmin); // В операторе return - значение указателя


}
void main() // Записать 0 на место


{ *min(B,10) = 0; } // минимального элемента массива

Прежде всего обратим внимание на синтаксис. Заголовок функции написан таким образом, как будто имя функции является указателем на int . Этим способом и обозначается, что ее результат -указатель. Оператор return возвращает значение переменной-указателя pmin , то есть адрес. Вообще в нем может стоять любое выражение, значение которого является указателем, например:


return &#38A[k];
return pmin+i;
return A+K;

Указатель - результат функции может ссылаться не только на отдельную переменную, но и на массив. В этом смысле он не отличается ничем от других указателей.



Содержание раздела