• какие существуют способы передачи данных между подпрограммой и вызывающей ее программой

Ответы 1

  • Сейчас буду немного писать беллетристику. Терминологически не точно, но смысл постараюсь объяснить.1. Использовать глобальные переменные. То есть переменные из общего пространства имён для программы и подпрограммы. В таком случае программа и подпрограмма пользуются одними и теми же переменными, что хотят, то и записывают или читают. Свободно и без ограничений.2. Передать данные из программы в подпрограмму можно в виде параметров. Этот способ подразделяется на два: передача по значению, и передача по ссылке. 2а) когда параметры передаются из программы в подпрограмму по значению, то подпрограмма создаёт внутри себя копии параметров, и использует их как свои локальные переменные. После завершения работы подпрограммы, такие копии уничтожаются, а исходные значения в вызывающей программе остаются как были, в неизменном виде. Поэтому такая передача данных - как билет в один конец: данные уходят в подпрограмму, а обратно таким способом не возвращаются.2б) когда параметры передаются из программы в подпрограмму по ссылке, то вызывающая программа передаёт в подпрограмму указатели на соответствующие переменные. Они на самом деле "под капотом" тоже глобальные, как в способе 1, но только их имена не используют общее пространство имён - как бы замаскированы. В таком случае, всё что подпрограмма делает с параметрами, приводит к изменению данных в вызывающей программе. Очень похоже на способ 1.2а) и 2б) - принципиально разные способы.2в) ещё бывает способ передачи параметров по имени, но такой способ в массовых языках программирования используется редко. В таком случае в подпрограмму передаётся именованый список параметров, то есть список из пар: имя параметра + значение параметра. Подпрограмма должна уметь такой список принять и обработать. В таком случае можно передавать списки параметров переменной длины, и произвольного состава.3. В любом случае подпрограмма, если она оформлена в виде функции, может передать обратно в программу возвращаемое значение - результат вычисления, выполненного подпрограммой.У каждого способа есть свои преимущества и недостатки, поэтому в разных случаях используются разные.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years