Передача параметров в функцию

В языке С++ может быть передача параметров по значению или по адресу. Формальным параметром-значением может быть только имя переменной определенного типа, например стандартного или структуры, определенной пользователем. Массивы, функции и файлы в языке С++ передаются только при помощи указателей.

Фактическим параметром, соответствующим формальному параметру-значению, для стандартных типов может быть выражение, результат которого при вызове функции копируется в стек, т.е. при передаче в функцию значения параметра любого типа в виде выражения, определяющего значение переменной – формального параметра, оно копируется в стек. Из­менение этого значения в теле функции не ведет к изменению оригинального значения соответствующего ему фактического параметра в вызывающей функции.

При использовании формального параметра-указателя в качестве фактического параметра передается указатель, т.е. адрес переменной. Только указатели обеспечивают доступ не к копиям значений, а к самим значениям переменных (фактических параметров) вызывающей функции. В зависимости от адресуемой переменной указатель может быть адресом данных любого типа, в том числе массива, структуры, массива структур, файла, функции и указателя. В стек копируется адрес фактического параметра, а не его оригинальное значение. Таким образом, передавая через указатель адрес фактического параметра, в теле вызываемой функции можно будет изменить значение по передаваемому адресу, следовательно, по завершении работы функции оригинальное значение фактического параметра будет изменено. При этом не будет изменено значение адреса фактического параметра.

Следует отметить, что имена фактических и формальных параметров могут не совпадать при описании и вызове функции.








Дата добавления: 2015-08-08; просмотров: 504;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.