Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Faxed
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 7
1

Список формальных параметров в функции

02.04.2014, 17:35. Просмотров 724. Ответов 6
Метки нет (Все метки)

Не понимаю цель формальных параметров. Зачем, например, вводить (int a, int b) в функции
C++
1
2
3
4
int summ(int a,int b)
{
Return a+b;
}
Вот все, что нашел в интернете:
"В общем виде синтаксис функции выглядит следующим образом:

возвр_тип имя_функции (список_параметров)

{

тело функции

}

Тело функции содержит последовательность операторов языка, выполняющих некоторые действия.

Возвр_тип определяет тип значения (результата), возвращаемого функцией. Функция может возвращать значение любого типа, за исключением массивов. Имя_функции представляет собой идентификатор, после имени функции обязательно следуют круглые скобки. В скобках указывается список формальных параметров. Каждый элемент списка формальных параметров состоит из имени переменной и ее типа. Все параметры функции должны объявляться отдельно, причем для каждого из них надо указывать и тип, и имя. При вызове функции формальные параметры заменяются значениями фактических аргументов."
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 17:35
Ответы с готовыми решениями:

Как понять список формальных параметров функции Bar?
class Foo { void friend Bar(Foo & foo); private: int data;

Несоответствие в списке формальных параметров
Ошибка 1 error C2563: несоответствие в списке формальных параметров (17 строка)...

Использование функций в качестве формальных параметров
Помогите вычислить f(x)/g(x), где в качестве f(x) и g(x) могут быть четыре...

Имена формальных и фактических параметров должны отличаться?
Здравствуйте. В институте преподаватель сказала, что "Имена фактических и...

Error C2563: несоответствие в списке формальных параметров
вот отрывок программы с ошибками, что не так? int i = 0; while (x <= xk)...

6
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 18:13 2
Лучший ответ Сообщение было отмечено Faxed как решение

Решение

Как компилятор должен понять, что за переменные a и b в функции?
1
Faxed
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 7
02.04.2014, 19:42  [ТС] 3
alsav22, то есть, объявлять переменные необязательно, это можно сделать тут, да???

Добавлено через 6 минут
А могу оставить скобки пустыми и объявить все в теле функции, да???
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 19:55 4
Лучший ответ Сообщение было отмечено Faxed как решение

Решение

Цитата Сообщение от Faxed Посмотреть сообщение
А могу оставить скобки пустыми и объявить все в теле функции, да???
Можно, но это будут переменные, объявленные в теле функции, а тут разговор идёт о переменных, которые передаются в функцию при вызове.
1
Faxed
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 7
02.04.2014, 20:04  [ТС] 5
alsav22, то есть, если я объявил в теле какой-либо функции, то я их не смогу, не передавая, использовать в другой функции, или как?
0
zss
Модератор
Эксперт С++
7178 / 6677 / 4226
Регистрация: 18.12.2011
Сообщений: 17,621
Завершенные тесты: 1
02.04.2014, 20:26 6
Параметры в функцию можно передавать 3 способами
C++
1
2
3
int summ1(int a);
int summ2(int* pa);
int summ3(int& ra);
В 1 случае (параметр int a) передается по значению,
т.е. в теле функции оказывается копия фактического параметра.
Соответственно, если ее поменять, то оригинал не поменяется:

Во 2 случае (параметр int* pa) передается адрес фактического параметра.
Соответственно зная адрес можем поменять фактический параметр:
В 3 случае параметр передается по ссылке. Это означает,
что передается непосредственно переменная и мы ее можем поменять:
C++
1
2
3
4
5
6
7
8
9
10
void summ1(int a){a=0;}
void summ2(int* pa){(*pa)=1;}
void summ3(int& a){a=2;}
int main()
{
    int x=-1;
    summ1(x);// x не меняется
    summ2(&x);// x станет равным 1
    summ3(x);// x станет равным 2
}
1
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.04.2014, 21:23 7
Цитата Сообщение от Faxed Посмотреть сообщение
то есть, если я объявил в теле какой-либо функции, то я их не смогу, не передавая, использовать в другой функции,
Да. Такие (локальные) переменные удаляются (память под ними считается свободной) при выходе из функции.
0
02.04.2014, 21:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2014, 21:23

В каких методах фактических параметров (аргументов) больше, чем формальных?
подскажите, в каких методах фактических параметров(аргументов) больше чем при...

Ошибка в калькуляторе "Несоответствие в списке формальных параметров"
такая ситуация: второй день учу с++, до этого ничего не учил, поэтому прошу...

Список параметров функции из DLL
В runtime загружаю DLL'ки, вывожу список функций содержащийся в них, но так и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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