Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Передача в функцию адреса аргумента




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

Передача данных по адресу.

 

 

 

 

Пусть из функции необходимо передать результат целого типа

Необходимо:

· Объявить в функции main переменную целого типа под результат.

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

· В имени функции и в прототипе объявить параметр указатель на целый тип.

· Внутри функции вычислить результат и записать его значение по указанному в параметре адресу.

… func(…, int *result) // параметр является указателем, *result=&result

{

*result=результату;// возвратили результат функции через параметр

return;

}

 

int main(void)

{

int result; //переменная целого типа под результат.

… func(…, &result); // передали в функцию адрес переменной res

cout<<result<<endl;

return 0;

}

 

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

void Swap(int *p1, int *p2)

{

int a;

a=*p1;

*p1=*p2;

*p2=a;

return;

}

 

int main(void)

{

int A, B;

cin>>A>>B;

Swap(&A, &B);

cout<<A<<’ ‘<<B<<endl;

return 0;

}


34. Передача одномерных массивов в функцию. Написать схематично программу с функцией, использующей одномерный числовой массив с десятичной точкой в качестве исходного данного.

… func(const double *p, int n)

{

// алгоритм обработки исходного массива

}

 

Если исходное данное – одномерный числовой массив типа double с const, говоря о том, что массив не изменим. Цикл перебора. Элементы массива можем анализировать и использовать при вычислениях в правой части. Изменять не можем.

35. Выделение памяти под массив-результат функции пользователя в функции main(). Написать схематично программу с функцией пользователя, в которой на основе исходного одномерного числового массива формируется массив-результат.

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

37. Передача многомерных массивов в функцию (на примере двумерных). Написать схематично программу с функцией, использующей целый двумерный числовой массив в качестве исходного данного.

38. Использование const при объявлении параметров функции.


+

39. Рекурсивные функции языка С++ и их применение при программировании.


Поделиться:

Дата добавления: 2015-01-29; просмотров: 161; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты