Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Сцепленная операция" против обычной "console out", Обьяснить разницу между операторами 
:(
    Опции темы
AProjects
Дата 20.12.2009, 02:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 20.12.2009

Репутация: нет
Всего: нет



привожу первый пример:

Код

#include <iostream>
using namespace std;

int function(char letter, int digit)
{
 cout<<letter<<"=";
 return 5*digit;


void main()
{
 int k=5;
 cout<<"letter k in main = "<<k<<endl;
 cout<<"in function letter "<<function('k',5)<<"\n";
}


ответ: 
letter k in main = 5
k=in function letter 25
---------------------------------------------------------------------------
привожу второй пример:

Код

#include <iostream>
using namespace std;

int function(char letter, int digit)
{
 cout<<letter<<"=";
 return 5*digit;


void main()
{
 int k=5;
 cout<<"letter k in main = "<<k<<endl;
 cout<<"in function letter ";
 cout<<function('k',5)<<"\n";
}


ответ: 
letter k in main = 5
in function letter k=25

-----------------------------------------------------------------------------
ВОПРОС: 
Почему разная последовательность операторов в ответах?
Как влияет сцепленная операция поместить в поток на результат? и почему?

Это сообщение отредактировал(а) AProjects - 20.12.2009, 02:40

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  answer.gif 12,53 Kb
PM MAIL   Вверх
GoldFinch
Дата 20.12.2009, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



AProjects, void main() на int main() для начала замени)

Добавлено через 1 минуту и 50 секунд
cout<<"in function letter "<<function('k',5)<<"\n";
вот тут, порядок выполнения cout<<"in function letter " и function('k',5) не определен,
по факту сначала выполняется функция, потом cout<<"in function letter "

а во 2м случае, порядок определен
PM MAIL ICQ   Вверх
xvr
Дата 20.12.2009, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Потому что '<<' в cout - это обычный вызов функции (operator <<), и как в любом вызове функции прежде чем его сделать нужно вычислить параметры. А function('k',5) - это один из параметров.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.