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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 86, средняя оценка - 4.80
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
#1

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

12.04.2010, 21:00. Просмотров 11497. Ответов 11
Метки нет (Все метки)

Никак не пойму принцип действия функции return. Объясните пожалуйста и если можно то на примере.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2010, 21:00     принцип действия функции return
Посмотрите здесь:

C++ В чем разница между return и return false/true
C++ return из функции более одного элемента как это сделать
Как сделать так, что если файл существует return true, если нет - return false C++
C++ return в функции потока
Что делает return в функции void? C++
C++ Принцип работы функции
Объясните принцип действия программы, меняющей местами строки матрицы с наибольшим и наименьшим элементами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1466 / 833 / 69
Регистрация: 26.03.2010
Сообщений: 2,839
12.04.2010, 21:03     принцип действия функции return #2
http://tinyurl.com/ybl6v54
CyBOSSeR
Эксперт C++
2299 / 1669 / 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
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
12.04.2010, 21:09     принцип действия функции return #4
&Alex&, возврат значения функцией через регист eax
Genius Ignat
1235 / 773 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
12.04.2010, 21:22     принцип действия функции return #5
&Alex&, возврат значения функцией через регист eax
Ух уже ассемблер перекочевывает из своего раздела.
И добавлю свои 5 копеек по низкому уровню:

И после возврата из функции стек обретает такое
состояние, которое было перед вызовом функции.
Стек использует LIFO - принцип: последним пришел, первым ушел.
Sheffs
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 10
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
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,950
Записей в блоге: 2
Завершенные тесты: 1
03.06.2013, 01:48     принцип действия функции return #7
Цитата Сообщение от Sheffs Посмотреть сообщение
Как возвратить два значения из функции с помощью return?
Никак. Однако, можно вернуть
C++
1
std::pair
Sheffs
1 / 1 / 0
Регистрация: 31.05.2013
Сообщений: 10
03.06.2013, 01:53     принцип действия функции return #8
pair вернет данные из функции search в основу int main?
Croessmah
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,950
Записей в блоге: 2
Завершенные тесты: 1
03.06.2013, 01:57     принцип действия функции return #9
Цитата Сообщение от Sheffs Посмотреть сообщение
pair вернет данные из функции search в основу int main?
конечно
http://www.cplusplus.com/reference/utility/pair/
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.06.2013, 10:54     принцип действия функции return #10
Sheffs, можно и через параметры-ссылки передать.
P.S. смотрю у Вас функция какая-то нелепая, передаете i, а потом используете ее как переменную цикла.
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
Еще ссылки по теме:

C++ Можно ли вывести сразу 2 значения int из функции через return?
Не работает оператор return в рекурсивной функции C++
C++ Несколько return в функции
Необходимо ли обрабатывать часть кода функции, расположенного после return? C++
Куда return возвращает результат из функции? C++

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

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

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