Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Общие сведения. Когда массив используется в качестве аргумента функции, передается только адрес массива, а не копия всего массива



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

#include <iostream.h>

#include <time.h>

#include <stdlib.h>

void display (float *, int);

float minim (float *, int);

int main (void)

{

float t[10];

int i;

srand(time(NULL));

for (i = 0; i < 10; i++)

t[i] = 20.*rand()/RAND_MAX-10;

display (t,10);

cout<<"min="<<minim(t,10)<<endl;

return 0;

}

//функция вывода на экран массива

void display (float *a, int k)

{

int j;

for (j = 0; j < k; j++)

cout<< a[j]<<'\t';

cout<<endl;

}

//функция поиска минимального элемента массива

float minim (float *a, int k)

{

int i;

float min=a[0];

for(i=0;i<k;i++)

{

if(a[i]<min)

min=a[i];

}

return min;

}

Т.к. массив передается с использованием указателей, это обозначает, что массив передается по адресу, т.е при изменении элементов массива в функции, изменяются значения элементов в вызывающей функции.

Поэтому в предыдущей задаче ввод элементов массива можно оформить также в отдельной функции, например

//функция ввода элементов массива

void input (float *a, int k)

{

int j;

for (j = 0; j < k; j++)

cin>> a[j];

}





Дата публикования: 2015-10-09; Прочитано: 206 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...