TheChampion
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Структура передается как и любая другая переменная. То есть или копированием, или по ссылке, или через указатель. Это выглядит так: struct ST { int m; //... }; void f(ST s) // Копированием { // Все изменения в s останутся внутри функции пока она выполняется } procedure f(s : ST); begin { Аналог для паскаля } end; void f(ST& s) // По ссылке (только в C++!) { // Все изменения произойдут будут действительны и после завершения функции } procedure f(var s : ST); begin { Аналог для паскаля } end; void f(ST* s) { // Вариант 2 с указателем, однако обращение к членам структуры выглядит так: s->m; // Или так: (*s).m; } Передача указателя или ссылки экономит время и память на копирование, но изменение приведет к (возможно ненужному) изменению исходных данных. В C++ этого можно избежать: void f(const ST& s) { // Теперь всякая перезапись членов приведет ошибке компиляции. } |