русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Еще об аргументах функций


Дата добавления: 2015-01-16; просмотров: 501; Нарушение авторских прав


В главе 1 мы уже обсуждали тот факт , что аргументы фун-кций передаются по значению, т.е. вызванная функция получаетсвою временную копию каждого аргумента, а не его адрес. этоозначает, что вызванная функция не может воздействовать наисходный аргумент в вызывающей функции. Внутри функции каж-дый аргумент по существу является локальной переменной, ко-торая инициализируется тем значением, с которым к этой функ-ции обратились. Если в качестве аргумента функции выступает имя массива,то передается адрес начала этого массива; сами элементы некопируются. Функция может изменять элементы массива, исполь-зуя индексацию и адрес начала. Таким образом, массив переда-ется по ссылке. В главе 5 мы обсудим, как использование ука-зателей позволяет функциям воздействовать на отличные отмассивов переменные в вызывающих функциях. Между прочим, несуществует полностью удовлетворительногоспособа написания переносимой функции с переменным числомаргументов. Дело в том, что нет переносимого способа, с по-мощью которого вызванная функция могла бы определить, сколь-ко аргументов было фактически передано ей в данном обраще-нии. Таким образом, вы, например, не можете написать дейст-вительно переносимую функцию, которая будет вычислять макси-мум от произвольного числа аргументов, как делают встроенныефункции MAX в фортране и PL/1. Обычно со случаем переменного числа аргументов безопасноиметь дело, если вызванная функция не использует аргументов,которые ей на самом деле не были переданы, и если типы сог-ласуются. Самая распространенная в языке "C" функция с пере-менным числом - PRINTF . Она получает из первого аргументаинформацию, позволяющую определить количество остальных ар-гументов и их типы. Функция PRINTF работает совершенно неп-равильно, если вызывающая функция передает ей недостаточноеколичество аргументов, или если их типы не согласуются с ти-пами, указанными в первом аргументе. Эта функция не являетсяпереносимой и должна модифицироваться при использовании вразличных условиях. Если же типы аргументов известны, то конец списка аргу-ментов можно отметить, используя какое-то соглашение; напри-мер, считая, что некоторое специальное значение аргумента(часто нуль) является признаком конца аргументов.


<== предыдущая лекция | следующая лекция ==>
Функции, возвращающие нецелые значения | Внешние переменные


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.242 сек.