【 fishing-pan: https://blog.csdn.net/u013921430 Пожалуйста, укажите источник】
предисловие
В эти дни я снова пересматриваю C ++, поэтому я знаю что-то новое. Каждый раз, когда я читаю книгу, я нахожу некоторые пункты знаний, которые раньше игнорировались мной, поэтому обучение не может остановиться!
Как язык программирования, две наиболее важные части C ++ — это функции и переменные. Связь между ними происходит через передачу параметров, а передача параметров имеет много деталей, требующих внимания. Сегодня давайте поговорим о проблеме передачи параметров. ,
В общем, процесс передачи параметров — это процесс инициализации параметров функции.
Передать по значению
Передача по значению является наиболее прямым и простым для понимания методом передачи параметров, и его форма выглядит следующим образом;
void fun (int x, int y) // define; веселье (а, б);
Когда вызов сделан, значение параметра присваивается формальному параметру путем копирования. Значение формального параметра не влияет на значение фактического параметра вне функции при выполнении различных вычислений в теле функции. Изменение значения формального параметра не имеет ничего общего с фактическим параметром;
Параметры по умолчанию. Передача аргументов в функцию по умолчанию. Аргументы по умолчанию. Урок #38
Процесс передачи ценности подобен этому;
int y = b; int x = a;
Следующий пример иллюстрирует эту точку;
#include using namespace std; void swap(int, int); void main() < int a(5), b(10); swap(a, b); cout void swap(int x, int y)
Хотя значения a и b передаются в swap (), значения формальных параметров заменяются в свопе, но значения a и b не обмениваются.
Примечание. Формальные параметры создаются справа налево, т. Е. Сначала создается y, а затем x. Когда функция заканчивается, порядок удаления меняется на противоположный.
Передача по адресу (параметр указателя)
Передача по адресу должна инициализировать формальный параметр с адресом переменной. Формальным параметром в данный момент является указатель, и его форма выглядит следующим образом;
void fun (int * x, int * y) // define; веселье ( b);
В процессе передачи параметров операция формальной инициализации параметра выглядит следующим образом;
int *y = int *x=
В это время, переопределив функцию swap (), вы обнаружите, что значения a и b изменены, поскольку функция изменяет значение объекта, на который указывает указатель, через указатель, который изменяет сами a и b.
#include using namespace std; void swap1(int*, int*); void main() < int a(5), b(10); swap1(b); cout void swap1(int* x, int* y)
Передать по ссылке
Как мы все знаем, операция ссылки — это операция самого объекта. Ссылка является «псевдонимом» самого объекта, на который есть ссылка. Передача параметра по ссылке аналогична ссылке. Формальный параметр становится «псевдонимом» фактического параметра. Его форма выглядит следующим образом;
Передача параметров в функцию по ссылке. Разница между ссылкой и указателем. Урок #51
void fun (int y) // define; веселье (а, б);
Операция инициализации параметра заключается в следующем;
int int
Возможно, что когда значение передается по ссылке, когда значение формального параметра изменяется в функции, значение фактического параметра также изменяется, и это также имеет место.
#include using namespace std; void swap2(int); void main() < int a(5), b(10); swap2(a, b); cout void swap2(int y)
преимущество
Хотя в нашем примере используется простой тип int, при фактическом использовании часто необходимо передавать большой контейнерный объект или большой объект типа класса. В этих случаях необходимо вызывать конструктор копирования для передачи параметров, эффективность Низко, этого можно избежать путем ссылки, значительно экономя вычислительное время и вычислительные ресурсы.
Используется для возврата информации
22. Понятие формального параметра. Использование формального параметра для передачи данных в подпрограмму (исходных данных и результатов).
Формальные параметры – это собственные переменные функции, которым при её вызове присваиваются значения фактических параметров.
В программе с многоуровневой структурой возникает проблема взаимодействия объектов, описанных в разных частях и модулях программы.
В языках с блочной структурой принят следующий принцип локализации объектов: объекты, вводимые в употребление в блоке, могут использоваться только в пределах данного блока. В подпрограмме могут действовать три вида объектов:
Формальные объекты – это объекты, описанные в заголовке определения подпрограммы. Область действия этих объектов – тело подпрограммы. Формальные параметры это также локальные объекты подпрограммы.
Область действия формальных параметров, описанных в прототипе функции – прототип функции.
В заголовке функции имеется список формальных параметров, в котором они имеют синтаксис определений обычных переменных.
В Си принят единый способ передачи параметров, который называется ПЕРЕДАЧЕЙ ПО ЗНАЧЕНИЮ. Выглядит он так:
-формальные параметры являются собственными переменными функции;
-при вызове функции происходит присваивание значений фактических параметров формальным (копирование первых во вторые);
-при изменении формальных параметров значения соответствующих им фактических параметров не меняются
Формальные параметры задают не какие-то конкретные данные программы, а лишь условно определяют объекты подпрограммы. Это позволяет применять подпрограммы к различным объектам программы, конкретизируя при каждом обращении ее данные в списке фактических параметров. В список формальных параметров необходимо вводить только те объекты, которые изменяются при вызове подпрограммы, т.е. входные и выходные данные. Формальные параметры в Си задаются в списке формальных параметров перечислением через запятую спецификаций отдельных параметров.
Спецификация каждого параметра имеет вид:
23. Понятие фактического параметра подпрограммы. Правила связывания формального и фактического параметров.
Фактические параметры – переменные, константы или выражения, значения которых при вызове присваиваются соответствующим по списку формальным параметрам.
Список фактических параметров – это список выражений, заменяющих формальные параметры функции. Соответствие между формальными и фактическими параметрами устанавливается по порядку их расположения в списках. Если формальных параметров у функции нет, то не должно быть и фактических параметров при обращении к этой функции. Фактические параметры (аргументы) передаются из вызывающей программы в функцию по значению, т.е. вычисляется значение каждого аргумента, и именно оно используется в теле функции вместо заменяемого формального параметра.
Между списком формальных и списком фактических параметров устанавливается соответствие по их взаимному расположению в списках: первому формальному параметру соответствует первый фактический параметр и т. д. При этом соблюдается соответствие параметров по типам. Связь между фактическими и формальными параметрами может устанавливаться двумя способами:
– связь по значению – значение фактического параметра присваивается формальному. Действия в подпрограмме выполняются над формальной переменной, получившей значение фактического параметра. Такой способ используется, прежде всего, для передачи входных данных в подпрограмму;
– связь по адресу (ссылке) – фактический параметр заменяет в теле подпрограммы формальный и подпрограмма получает доступ к фактическому параметру. Если говорить более точно, то формальному параметру присваивается адрес (ссылка) фактического параметра.
Значение такого формального параметра при его использовании в операциях рассматривается как адрес того объекта, над которым надо выполнить эту операцию. Такой способ используется как для передачи входных данных, так, и, прежде всего, для выходных данных (результатов). В Си связь между формальными и фактическими параметрами устанавливается по значению. Фактический параметр в этом случае – выражение того же типа, что и соответствующий ему формальный. В момент вызова функции вычисляется значение фактического параметра и присваивается формальному параметру.
Источник: studfile.net
Что такое формальные параметры программы функции
Ключевое отличие — Фактическое против формальных параметров
Использование функций — важное понятие в программировании. Функция — это ряд операторов, которые могут выполнять какую-то конкретную задачу. Если программист запишет все операторы как одну программу, это станет сложным. Чтобы этого избежать, можно использовать функции. Они также известны как методы.
У каждой функции будет свой функционал. Функции улучшают оптимизацию кода и возможность повторного использования кода. Это могут быть функции, предоставляемые языком программирования, или функции, написанные программистом. У каждой функции есть имя, чтобы ее идентифицировать. После выполнения определенной задачи с помощью функции он может вернуть значение.
Некоторые функции не возвращают никакого значения. Данные, необходимые функции для выполнения задачи, отправляются в виде параметров. Параметры могут быть фактическими параметрами или формальными параметрами. В ключевое отличие между фактическими параметрами и формальными параметрами заключается в том, что Фактические параметры — это значения, которые передаются в функцию при ее вызове, а формальные параметры — это переменные, определенные функцией, которая получает значения при вызове функции.
1. Обзор и основные отличия
2. Каковы фактические параметры
3. Каковы формальные параметры
4. Сходство между фактическими и формальными параметрами
5. Сравнение фактических и формальных параметров в табличной форме
6. Резюме
Каковы фактические параметры?
Фактические параметры — это значения, которые передаются функции при ее вызове. Обратитесь к программе ниже.
недействительное дополнение (int x, int y)
printf («% d», сложение);
Согласно приведенной выше программе на языке C существует функция с именем сложение. В основной функции значения 2 и 3 передаются в функцию сложения. Эти значения 2 и 3 являются фактическими параметрами. Эти значения передаются в метод сложения, и на экране отображается сумма двух чисел. И снова в основной программе методу сложения передаются два новых целых значения.
Теперь фактические параметры — 4 и 5. Сумма 4 и 5 будет отображаться на экране.
Что такое формальные параметры?
Функция или метод следует синтаксису, аналогичному приведенному ниже:
// набор операторов для выполнения
Имя метода предназначено для идентификации метода. Тип возвращаемого значения определяет тип значения, которое вернет метод. Если метод не возвращает значение, тип возврата недействителен. Если функция возвращает целочисленное значение, то тип возвращаемого значения — целое число. Список формальных параметров заключен в скобки.
Список содержит имена переменных и типы данных всех необходимых значений для метода. Каждый формальный параметр разделяется запятой. Если метод не принимает никаких входных значений, тогда после имени метода должен быть пустой набор круглых скобок. например добавление () <>; Операторы, которые необходимо выполнить, заключаются в фигурные скобки.
Формальные параметры — это переменные, определенные функцией, которая получает значения при вызове функции. Согласно приведенной выше программе значения 2 и 3 передаются в функцию сложения. В функции сложения есть две переменные, называемые x и y. Значение 2 копируется в переменную x, а значение 3 копируется в переменную y. Переменные x и y не являются фактическими параметрами.
Это копии реальных параметров. Они известны как формальные параметры. Эти переменные доступны только внутри метода. После печати сложения двух чисел управление возвращается обратно в основную программу.
В чем сходство между фактическими и формальными параметрами?
- Оба связаны с функциями.
- Параметры заключены в круглые скобки.
- Каждый параметр разделяется запятой.
В чем разница между фактическими и формальными параметрами?
Фактические и формальные параметры
Резюме — Фактическое против формальных параметров
Использование функций — полезная концепция в программировании. Функции помогают уменьшить длину кода и уменьшить сложность. Также легко проводить тестирование, отладку и улучшать ремонтопригодность кода. Некоторые функции могут не нуждаться во входных данных, но некоторые функции требуют входных данных. Можно передавать данные в функции в качестве входных данных.
Они известны как параметры. Два общих термина, относящихся к функциям, — это фактические параметры и формальные параметры. Разница между фактическими параметрами и формальными параметрами заключается в том, что фактические параметры — это значения, которые передаются функции при ее вызове, а формальные параметры — это переменные, определенные функцией, которая получает значения при вызове функции.
Скачать PDF-файл фактических и формальных параметров
Вы можете загрузить PDF-версию этой статьи и использовать ее в автономных целях в соответствии с примечанием к цитированию. Пожалуйста, скачайте PDF-версию здесь: Разница между фактическими и формальными параметрами
Источник: ru.strephonsays.com