КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Передача в функцию адреса аргументаПередавая адрес аргумента, мы можем не только извлекать текущее значение аргумента и выполнять с ним действия, но и изменять аргумент. Этот механизм используется для передачи из функции дополнительных результатов. Передача данных по адресу.
Пусть из функции необходимо передать результат целого типа Необходимо: · Объявить в функции 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. Рекурсивные функции языка С++ и их применение при программировании.
|