Вышеупомянутый выделенный код называется ссылкой .Вы можете рассматривать ссылки как псевдонимы для переменных.
Во время вызова функции sDate
становится псевдонимом для sToday
, который был задан в качестве параметра.Таким образом, это позволяет изменить sToday
изнутри функции!
Причина в том, что она позволяет задавать сложные структуры, которые могут быть заполнены данными, модифицированы и т. Д. Внутри вызываемых функций.
В вашем случае функция SetDate
занимает отдельноегод, месяц и день - и упаковывает его внутри sDate
(== sToday
) структуры.
Просто сравните первый способ инициализации (вам нужно упомянуть все члены структуры самостоятельно) к вызову SetDate
функции.
например:
DateStruct janFirst;
DateStruct decLast;
SetDate(janFirst, 1, 1, 2011);
SetDate(decLast, 12, 31, 2011);
Сравните это с тем, сколько кода было бы написано, если бы вам пришлось заполнить все эти janFirst
, decLast
конструкции вручную!