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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2009, 15:36   #1
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
Смех Объяснить строку из книги

Здравствуйте! Начал изучать функции. Прочитал вот такую строку из темы "Функции", что-то не понятно. Вот строка:

При этом функции возвращают значение определённого типа
которое замещает в вызвавшем выражении,имя вызваной функции. Как понимать выделенный кусок?
prikolist вне форума Ответить с цитированием
Старый 08.04.2009, 15:43   #2
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

Есть у тебя функция.
int Return3() { return 3; }

Если в коде есть строка
int a = 5 + Return3() + 9;

то будет выполнено выражение
int a = 5 + 3 + 9;
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 08.04.2009, 15:47   #3
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Код:
int a = 5 + Return3() + 9;
- может в этой строке нужно было писать не Return3() , а Return(3).
Спасибо, может кто-нибудь ещё приведёт пример. Ещё,как понимать замещает в вызвавшем выражении,имя вызваной функции.

Последний раз редактировалось prikolist; 08.04.2009 в 15:52.
prikolist вне форума Ответить с цитированием
Старый 08.04.2009, 15:52   #4
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

Функция описана как int Return3();
Ей нельзя передавать параметры.
и уж функции Return() в данном примере точно нету...
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 08.04.2009, 15:53   #5
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Приведите пожалуйста ещё 1-2 примера.Ещё,как понимать замещает в вызвавшем выражении,имя вызваной функции. Ещё там встретилась такая фраза:

При отсутствии прототипов любая используемая функция, должна быть описана до её первого вызова в тексте.

Последний раз редактировалось prikolist; 08.04.2009 в 16:12.
prikolist вне форума Ответить с цитированием
Старый 08.04.2009, 18:22   #6
Maladoj
Пользователь
 
Регистрация: 19.03.2009
Сообщений: 25
По умолчанию

Смотри насщет прототипов
пример
Код:
int dron();// прототип функции

void main(){

cout<<dron()<<endl; // выводим  значение которое возвращаэт функция
// будет вывидено 5

}
// а вот сама функция
int dron (){
return 5;
}
Если написать тоже без обявления прототипа работать не будет, а что б работало без обявления прототипа надо написать следующим образом
  
int dron (){
return 5;
}

void main(){

cout<<dron()<<endl; // выводим  значение которое возвращаэт функция
// будет вывидено 5

}
то есть если без прототипа то функция должна быть обявлена перед void main()

Последний раз редактировалось MaTBeu; 09.04.2009 в 19:07.
Maladoj вне форума Ответить с цитированием
Старый 08.04.2009, 23:18   #7
Mikola-TEAM
Пользователь
 
Регистрация: 31.05.2008
Сообщений: 34
По умолчанию

Цитата:
Сообщение от prikolist Посмотреть сообщение
При этом функции возвращают значение определённого типа
которое замещает в вызвавшем выражении,имя вызваной функции. Как понимать выделенный кусок?
Цитата:
#include <iostream>
using namespace std;

int god()
{
return 2009;
}

int main()
{
cout << "A kakoj sejchas god ?" << endl;
cout << god() << endl;

system("pause");
}
Имя нашей функции (к примеру) god()
cout << god() << endl; ---вот в этом выражении мы её вызываем
программа передаёт управление той её части, где собственно наша функция и описана
int god()
{
return 2009;
}
данная функция возвращает значение типа int туда, где она была вызвана, т.е. в строку cout << god() << endl;
и в этой строке заменяет имя функции god() на число 2009 у которого тип int, т.е. в итоге получится тоже самое, что

Цитата:
cout << 2009 << endl;
Цитата:
При отсутствии прототипов любая используемая функция, должна быть описана до её первого вызова в тексте.
Мы описали нашу функцию до того, как вызвали её. Но если у нас сперва идёт main(), а уже потом описаны функции, то перед main() нужно написать прототип. И получится вот так
Цитата:
int god();

int main()
{
cout << "A kakoj sejchas god ?" << endl;
cout << god() << endl;

system("pause");
}


int god()
{
return 2009;
}
Mikola-TEAM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
снятие пароля с книги/листа из другой книги? Bezdar Microsoft Office Excel 3 25.12.2008 11:59
Помогите объяснить программку Panda Помощь студентам 2 03.07.2008 08:21
Delphi. Объяснить прогу. Bomber Помощь студентам 0 02.06.2008 19:59
помогите объяснить прогу... faster Паскаль, Turbo Pascal, PascalABC.NET 1 12.05.2008 19:37