Синтаксис языка С предусматривает только один способ передачи параметров – передачу по значениям. Это означает, что формальные параметры функции локализованы в ней и не доступны вне ее определения, никакие операции над формальными параметрами в теле функции не изменяют значений фактических параметров.
Передача параметров по значению предусматривает следующие шаги:
1. При вызове функции выделяются участки памяти для ее формальных параметров. Если параметром является массив, то формируется указатель на начало этого массива и он служит представлением массива-параметра в теле функции.
2. Вычисляются значения выражений, использованных в качестве фактических параметров при вызове функции.
3. Вычисленные значения заносятся в участки памяти, выделенные для формальных параметров функции.
4. В теле функции выполняется обработка с использованием значений внутренних объектов-параметров, и результат передается в точку вызова функции как возвращаемое ею значение.
5. После выхода из функции освобождается память, выделенная для ее формальных параметров.