Особенности выделения памяти при вызове функции

При вызове функции всем данным, принимающим участие в работе функции, независимо от их статуса (локальные или глобальные), выделяются ячейки памяти в участке оперативной памяти компьютера, называемом стэком. Причем, эта память выделяется только на время работы функции. Для аргументов, играющих роль исходных данных, также выделяются ячейки памяти и там создаются копии их значений. Оригиналы их значений хранятся в ячейках, выделенных еще при их описании в вызывающей функции. В приведенном ранее примере, при вызове функции max(k, l), используются не оригиналы значений переменных k = 1.25 и l= - 0.75, а их копии. Копии значений могут изменяться в процессе работы функции, а оригиналы – нет. После завершения работы функции, выделяемая для нее память освобождается.