Конспект лекций по информатике и информационным технологиям
142 функция возвращает значение, то его тип указывается в описании функции непосредст венно пред ее именем, а возвращаемое значение указывается после оператора return. Та кие функции могут вызываться внутри операторов (например, в операторе присвоения "=") или как аргументы других функций. Если функция не возвращает значения, то в ка честве возвращаемого типа указывается void. Вызывается такая функция как обычный оператор. Вызов функции может включаться в выражения в качестве операнда. Когда выра жение вычисляется, функция выполняется и значением операнда становится значение, возвращаемое функцией. Пример программы, осуществляющей вызов функции тах(): void main(void) { double a, b, c; printf("Введите значения a и b: "); scanf("%lg %lg", &a/&b) r z = 1 + 5*max(a,b); printfC'c = %g", c) ; } 12.2.3. Параметры функции Параметры используются для передачи входных данных из вызывающей програм мы в функцию и выходных данных из функции в вызывающую программу. Чтобы отличать параметры подпрограммы, описанные в её заголовке и теле, от па раметров, указываемых при вызове подпрограммы, первые принято называть формальны ми параметрами, вторые - фактическими параметрами. При вызове функции фактические параметры, указанные в команде вызова, становятся значениями соответствующих фор мальных параметров, чем и обеспечивается передача данных в функцию. В описании функции задается список формальных параметров. Каждый параметр, указанный в списке формальных параметров, является локальным по отношению к данной функции и в программном блоке функции на него можно ссылаться по его идентификато ру (имени). Существует два способа передачи параметров внутрь функции: по значению и по ссылке. При передаче параметра по значению формальному параметру функции присваи вается копия значения фактического параметра. При этом все изменения формального па раметра внутри функции никак не отражаются на фактическом параметре. При передаче параметра по ссылке в качестве формального параметра передается адрес фактического параметра. Внутри функции этот адрес открывает доступ к фактиче скому параметру. Это значит, что все изменения формального параметра будут отражать ся на значении фактического параметра. 12.2.4. Передача параметров по значению Формальный параметр-значение обрабатывается, как локальная по отношению к процедуре или функции переменная, за исключением того, что он получает свое началь ное значение из соответствующего фактического параметра при активизации функции. Изменения, которые претерпевает формальный параметр-значение, не влияют на значение фактического параметра. Фактический параметр должен иметь тип, совместимый по присваиванию с типом формального параметра-значения. По умолчанию в С++ используется передача по значению. В этом случае операто ры, образующие тело функции, не могут изменять фактические параметры, указанные при ее вызове. Пример:
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy