Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2012, 22:01   #1
Slems
 
Регистрация: 02.09.2012
Сообщений: 3
Восклицание Void(не могу понять участок кода)

Учусь языку программирования C++ по учебнику "Джесс Либерти" С++ за 21 день.
Не думайте,что взяв за основу данную книгу я хочу по-быстрее его выучить(21 день).В книге 820 страниц( электронное-издание),и я думаю его на долго хватит...
Суть дела:
Читаю о функциях,а так же о том,что они могут быть вызваны в любой части кода,имеют параметры,возвращаемый тип,int,void(ничего не возвращает).
Но на первом же примере возникла проблема с пониманием 1 строчки кода
Код:
#include <iostream>
using namespace std;

int Add(int x,int y)
{
cout<<"In Add(),received"<< x << " and " << y <<'\n';
return(x+y);
}

int main()
{
cout<<"im in main()! \n";
int a,b,c;
cout<<"enter two numbers: ";
cin>>a;
cin>>b;
cout<<"\nCalling Add() \n";
c=Add(a,b);
cout<<"\nBack in main() \n";
cout<<"c was set to " << c;
cout<<"\nExiting... \n \n";
system("PAUSE");
return 0;
}
вот этой
c=Add(a,b);
Казалось бы...в переменную типа int с присваивается значение суммы функции Add и двух чисел,что мы ранее ввели с клавы,но
1) мы ведь просто занесли в переменную C значение Функции Add(a,b),и сразу после этого она выполнилась,но как?Появилась строка In Add(),received 3 and 5 ,но я ведь не вызывал ее,а только присвоил..
2) когда мы вывели переменную "с" то вывелась сумма,это понятно.
может кто помочь дельным советом?
Спасибо

Последний раз редактировалось Stilet; 02.09.2012 в 22:18.
Slems вне форума Ответить с цитированием
Старый 02.09.2012, 22:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я ведь не вызывал ее,а только присвоил..
Как это не вызвал?
Еще как вызвал. Функция внутри выражения выполняется, и возвращает результат в выражение.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.09.2012, 22:30   #3
Slems
 
Регистрация: 02.09.2012
Сообщений: 3
По умолчанию

т.е. все функции,над которыми выполняется какое-то действие,будь то даже присваивание - выполняются?
получается,что при присвоении функции Add(a,b) я
1) вывел первую строчку на экран
2) а возвращение выражение a+b присвоилось переменной c?
тогда все понятно,большое спасибо)

Последний раз редактировалось Slems; 02.09.2012 в 22:32. Причина: уточнение
Slems вне форума Ответить с цитированием
Старый 03.09.2012, 00:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
т.е. все функции,над которыми выполняется какое-то действие,будь то даже присваивание - выполняются?
Абсолютно. Видать неправильную книгу читаешь, или читаешь ее между строк.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2012, 09:06   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ТС, в вашем случае переменной c присваивается результат функции Add(соответственно она вызывается).
а не функция Add как вы полагаете.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.09.2012, 16:53   #6
Slems
 
Регистрация: 02.09.2012
Сообщений: 3
По умолчанию

Большое спасибо всем ответившим.
Я не читаю между строк,и книга далеко не плохая,просто до самого урока функций я еще не дошел,автор книги показал пример использования функций,но не дал хорошего описания выполнения кода.
В чем-то есть его вина,но скорей всего,все подобные примеры будут разобраны далее.
В любом случае,всем спасибо за ответ,я более чем полностью ответ на поставленный вопрос
Slems вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выполняется участок кода NiKiToZZ- Общие вопросы Delphi 10 25.02.2012 00:29
участок кода с оператором for tema1234321 Помощь студентам 3 27.12.2011 00:41
участок кода с оператором for tema1234321 Помощь студентам 3 27.12.2011 00:14