Форум программистов, компьютерный форум CyberForum.ru

принцип действия функции return - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 86, средняя оценка - 4.80
&Alex&
 Аватар для &Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
12.04.2010, 21:00     принцип действия функции return #1
Никак не пойму принцип действия функции return. Объясните пожалуйста и если можно то на примере.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
12.04.2010, 21:03     принцип действия функции return #2
http://tinyurl.com/ybl6v54
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
12.04.2010, 21:08     принцип действия функции return #3
Цитата Сообщение от &Alex& Посмотреть сообщение
функции
Это оператор, а не функция.
Цитата Сообщение от &Alex& Посмотреть сообщение
принцип действия
До безумие прост - возвращает значение указанное за ним.
Цитата Сообщение от &Alex& Посмотреть сообщение
можно на примере
C++
1
2
3
4
5
6
7
8
// Возводит число n в квадрат
double square(double n) {
  return n * n;
}
 
// ...
double result = square(2.0); // result == 4.0
// ...
Функция square принимает число типа double, и возвращает его квадрат (строка 2).
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
12.04.2010, 21:09     принцип действия функции return #4
&Alex&, возврат значения функцией через регист eax
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
12.04.2010, 21:22     принцип действия функции return #5
&Alex&, возврат значения функцией через регист eax
Ух уже ассемблер перекочевывает из своего раздела.
И добавлю свои 5 копеек по низкому уровню:

И после возврата из функции стек обретает такое
состояние, которое было перед вызовом функции.
Стек использует LIFO - принцип: последним пришел, первым ушел.
Sheffs
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 9
03.06.2013, 01:47     принцип действия функции return #6
Как возвратить два значения из функции с помощью return?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 int search(int i)
{
    max1=a[0];
for(i=1; i<n; i++)
{
    if(a[i]>=max1)
    {
        max2=max1;
        max1=a[i];       
    }
    else
        if(a[i]>=max2 && a[i]!=max1)
            max2=a[i];
}
return max2;
нужно в int main вернуть max1 и max2, что бы потом эти значения вывести на экран.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
03.06.2013, 01:48     принцип действия функции return #7
Цитата Сообщение от Sheffs Посмотреть сообщение
Как возвратить два значения из функции с помощью return?
Никак. Однако, можно вернуть
C++
1
std::pair
Sheffs
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 9
03.06.2013, 01:53     принцип действия функции return #8
pair вернет данные из функции search в основу int main?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
03.06.2013, 01:57     принцип действия функции return #9
Цитата Сообщение от Sheffs Посмотреть сообщение
pair вернет данные из функции search в основу int main?
конечно
http://www.cplusplus.com/reference/utility/pair/
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.06.2013, 10:54     принцип действия функции return #10
Sheffs, можно и через параметры-ссылки передать.
P.S. смотрю у Вас функция какая-то нелепая, передаете i, а потом используете ее как переменную цикла.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
03.06.2013, 14:50     принцип действия функции return #11
Цитата Сообщение от &Alex& Посмотреть сообщение
функции return
нет такой функции.

Добавлено через 3 минуты
Цитата Сообщение от M128K145 Посмотреть сообщение
&Alex&, возврат значения функцией через регист eax
Существует множество соглашений о вызовах и во всех способ возврата значения зависит от типа. За одним лишь исключением - когда соглашение предусматривает возврат значения только через память и передачу указателя на него через один, или два регистра.

Добавлено через 3 минуты
Цитата Сообщение от Sheffs Посмотреть сообщение
int search(int i)
{
* * max1=a[0];
for(i=1; i<n; i++)
{
* * if(a[i]>=max1)
* * {
* * * * max2=max1;
* * * * max1=a[i]; * * *
* * }
* * else
* * * * if(a[i]>=max2 && a[i]!=max1)
* * * * * * max2=a[i];
}
return max2;
Не правильно. Если уж ты пишешь в глобальную память, то это и должен быть способ возврата значения, а не оператором return. Кроме того, следует избегать обращений к глобальным данным, на которые не ссылаются параметры-ссылки и не указывают параметры-указатели.

Добавлено через 1 минуту
Цитата Сообщение от Sheffs Посмотреть сообщение
в основу int main
у функции main нет основы.

Добавлено через 2 минуты
Цитата Сообщение от Tulosba Посмотреть сообщение
передаете i, а потом используете ее как переменную цикла.
Ну это то на фоне его обращения с глобальной памятью и капитальной путаницей в двух различных способах возврата значений - мелочь не сусветная. Как ты её заметил то?

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
И что? От этого у функции main появится основа, в которую можно будет что то вернуть? Или ты "нет" забыл?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 15:06     принцип действия функции return
Еще ссылки по теме:

Что делает return в функции void? C++
C++ Принцип работы функции
Объясните принцип действия программы, меняющей местами строки матрицы с наибольшим и наименьшим элементами C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
03.06.2013, 15:06     принцип действия функции return #12
taras atavin, Перечитайте все посты. Ясно же, что под возвратом в основу имеется ввиду возврат значения из функции search в основную функцию - в main
Yandex
Объявления
03.06.2013, 15:06     принцип действия функции return
Ответ Создать тему
Опции темы

Текущее время: 02:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru