Я так понимаю, там объявляются типы переменных. А также ссылки (указатели). А разве типы переменных нельзя объявить в теле функции, оставив параметры пустыми f() ? Объясните пожалуйста назначение параметров функций.
Параметры функции предназначены для общения функции с "внешним миром", т.е. с кодом, который вызвал эту функцию.
Значения параметров внутри функции - это ни что иное, как значения аргументов функции, предоставленные вызывающим кодом в точке вызова. Таким образом вы передаете информацию (аргументы) снаружи из точки вызова внутрь функции. Когда вы вызываете функцию sqrt
с аргументом 25
sqrt(25)
значение 25
передается внутрь функции sqrt
через ее единственный параметр. Внутри функция sqrt
будет знать, что ее попросили вычислить квадратный корень из 25
, Что она и сделает.
Также параметры функции могут использоваться для возвращения результатов работы функции обратно в вызывающий код.
Переменные, которые объявлены локально внутри функции никакой связи с вызывающим кодом не имеют и использоваться для связи с внешним миром не могут.
В дополнение к ответу @AnT - то, о чем вы говорите, немного похоже - но только похоже! - на объявление функций в старом K&R C:
int max(a, b, с)
int а, b, с;
{
/* ... */
}
Но - имена параметров все равно нужно указывать; только и того, что вы объявляете их типы позже. Если не указывать параметры вовсе - функция просто не будет знать, что ей вообще что-то передано, т.е. не будет понимать, с какой входной информацией работать. Можно, конечно, и так - через глобальные переменные, но это же ужас! например:
double sqrt_param;
double sqrt() { /* Вычисление квадратного корня из sqrt_param */ };
int main()
{
sqrt_param = 25;
cout << "sqrt(25) = " << sqrt() << endl;
sqrt_param = 36;
cout << "sqrt(36) = " << sqrt() << endl;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Как можно хранить данные вне программы в C++ кроме текстовых и бинарных файлов?
Есть небольшая программа, я использовал только стандартную библиотеку, но она по разному работает под linux и windows
Почему появляется эта ошибка? Когда я не использую !file2eof, ошибка не возникает