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

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

Войти
Регистрация
Восстановить пароль
 
 
jaketaylor
1 / 1 / 1
Регистрация: 22.05.2011
Сообщений: 67
#1

Значение оператора return - C++

04.05.2013, 20:13. Просмотров 1030. Ответов 21
Метки нет (Все метки)

Прочитал про оператор return, но не очень понятно про его.
Как он используется ниже (объясните), может после этого примера что-либо прояснится относительно return.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <conio.h>
int MinMax (int a, int b, int Max)  //a, b, c - это формальные параметры.
  {
  if (a > b) {Max = a; return b;}
  else       {Max = b; return a;}
  }
 
main()
  {
  int N, M, min, max;
  printf("Введите два целых числа:\n");
  scanf("%d%d", &N, &M);
  min = MinMax (N, M, max);  //вызов функции  //N, M, max - это фактические параметры и Первый фактический параметр используется внутри функции вместо первого формального (см. выше) параметра, и т.д.
  printf("Наименьшее - %d, наибольшее - %d\n", min, max);
  getch();
  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2013, 20:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Значение оператора return (C++):

Значение пустого оператора return - C++
Скажите для чего он нужен вообще? допустим: void Func(){ if(){ //что-то делаем return; } }

Перегрузка оператора return - C++
Можно ли перегрузить оператор return? Что по умолчанию в его теле? Тот же вопрос и с goto.

Назначение оператора return - C++
Клянусь вам что прочёс огромное кол-во статей, форумов и т.д. про функцию return, но так и не понял что она делает. Все пишут что...

Значение, возвращаемое return, не соответствует ожиданиям - C++
Добрый вечер! Подскажите, пожалуйста, что я делаю не так? Почему return возвращает 2, а не c? AleksandraM, код перепечатываем в...

В чем разница между return и return false/true - C++
Привет всем. Вот подскажите плиз) return; return false; return true; расскажите пожалуйста об етих операторах.. чем они...

Значение якобы возвращённое функцией при опущенном return - C++
Что считается значением, возвращённым функцией, в которой опущен оператор `return`? Зачем компилятор позволяет не указывать `return` в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nonedark2008
09.05.2013, 22:54     Значение оператора return
  #16

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
если тебе это поможет то вот это
Надо человеку предложить писать сначало на C++, скомпилировать, деассемблировать, а потом смотреть что в итоге вышло =)

ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
09.05.2013, 23:06 #17
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Надо человеку предложить писать сначало на C++, скомпилировать, деассемблировать, а потом смотреть что в итоге вышло =)
и что это изменит?
для платформы х86 возвращаемое значение лежит в EAX ( или во флаге переноса если возвращается bool)
jaketaylor
1 / 1 / 1
Регистрация: 22.05.2011
Сообщений: 67
10.05.2013, 03:07  [ТС] #18
Как я понял, то return просто "приравнивает" значение b переменной MinMax. Аналогично b == MinMax.
Код
int MinMax (int a, int b, int Max)  //a, b, c - это формальные параметры.
  {
  if (a > b) {Max = a; return b;}
  else       {Max = b; return a;}
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.05.2013, 11:42 #19
Цитата Сообщение от taras atavin Посмотреть сообщение
return возвращает значение функции в правый операнд оператора присваивания
В общем случае никаких операторов присваивания может и не быть. Например при передаче результата функции как аргумента другой функции.

В коде ТС:
C++
1
2
3
4
5
int MinMax (int a, int b, int Max)  //a, b, c - это формальные параметры.
  {
  if (a > b) {Max = a; return b;}
  else       {Max = b; return a;}
  }
функция вернет минимум, но вот максимум не вернет никак. Так как Max локальна в пределах функции. Нужно использовать например передачу по ссылке. Собственно об этом уже говорили в теме.

Объяснять новичку плюсовый код через ассемблерные команды - это вообще лютый трэш. Знай ТС асм в нужном объеме, вопросов про return не возникло бы вовсе.

Цитата Сообщение от jaketaylor Посмотреть сообщение
Как я понял, то return просто "приравнивает" значение b переменной MinMax. Аналогично b == MinMax.
MinMax - это функция, а не переменная. У функции есть аргументы, а есть возвращаемое значение. Оно и задается оператором return. Вот почитайте например у мелкомягких.
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
10.05.2013, 12:13 #20
Цитата Сообщение от Tulosba Посмотреть сообщение
Объяснять новичку плюсовый код через ассемблерные команды - это вообще лютый трэш. Знай ТС асм в нужном объеме, вопросов про return не возникло бы вовсе.
я исходил из того что раньше он писал на ассемблере

Цитата Сообщение от go Посмотреть сообщение
На чем писали до плюсов?
Цитата Сообщение от jaketaylor Посмотреть сообщение
asm
Tulosba
10.05.2013, 12:48
  #21

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
я исходил из того что раньше он писал на ассемблере
Я это видел. Но, если честно, правдивость ответа ТС вызывает сомнения. Может он 2 строчки написал 3 года назад. На этом всё и закончилось. И судя по вопросам, так оно и есть.

go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
10.05.2013, 13:16 #22
Цитата Сообщение от jaketaylor Посмотреть сообщение
asm
Вот это хорошо. Продизассамблируй, и посмотри во что превращается оператор return.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2013, 13:16
Привет! Вот еще темы с ответами:

Как сделать так, что если файл существует return true, если нет - return false - C++
Здравствуйте, я новичок в программировании. Мой вопрос очень прост: как сделать так, что если файл существует return true если нет return...

подскажите значение оператора -> - C++
Всем привет. Через час бегу на экзамен. Вот сижу все повторяю. Один раз за весь семестр где-то всплыл оператор -&gt; кажется со struct ...

Значение указателей в условии оператора - C++
Добрый вечер, наткнулся на вроде бы донельзя тривиальную вещь, но все же непонятную: int ival = 1024; int *pi = 0; // pi допустим,...

Вывести "return 0" если введенное значение равно -1 - C++
Вывести return 0 если в вводе есть -1 ,но есть одно но. я ввожу 3 элемента так while(cin&gt;&gt;time&gt;mission&gt;&gt;status) и вот такой тест 3 E...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.05.2013, 13:16
Ответ Создать тему
Опции темы

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