Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Еще об аргументах функций
В главе 1 мы уже обсуждали тот факт, что аргументы фун- кций передаются по значению, т.е. вызванная функция получает свою временную копию каждого аргумента, а не его адрес. это означает, что вызванная функция не может воздействовать на исходный аргумент в вызывающей функции. Внутри функции каж- дый аргумент по существу является локальной переменной, ко- торая инициализируется тем значением, с которым к этой функ- ции обратились.
Если в качестве аргумента функции выступает имя массива, то передается адрес начала этого массива; сами элементы не копируются. Функция может изменять элементы массива, исполь- зуя индексацию и адрес начала. Таким образом, массив переда- ется по ссылке. В главе 5 мы обсудим, как использование ука- зателей позволяет функциям воздействовать на отличные от массивов переменные в вызывающих функциях. Между прочим, несуществует полностью удовлетворительного способа написания переносимой функции с переменным числом аргументов. Дело в том, что нет переносимого способа, с по- мощью которого вызванная функция могла бы определить, сколь- ко аргументов было фактически передано ей в данном обраще- нии. Таким образом, вы, например, не можете написать дейст- вительно переносимую функцию, которая будет вычислять макси- мум от произвольного числа аргументов, как делают встроенные функции MAX в фортране и PL/1. Обычно со случаем переменного числа аргументов безопасно иметь дело, если вызванная функция не использует аргументов, которые ей на самом деле не были переданы, и если типы сог- ласуются. Самая распространенная в языке "C" функция с пере- менным числом - PRINTF. Она получает из первого аргумента информацию, позволяющую определить количество остальных ар- гументов и их типы. Функция PRINTF работает совершенно неп- равильно, если вызывающая функция передает ей недостаточное количество аргументов, или если их типы не согласуются с ти- пами, указанными в первом аргументе. Эта функция не является переносимой и должна модифицироваться при использовании в различных условиях. Если же типы аргументов известны, то конец списка аргу- ментов можно отметить, используя какое-то соглашение; напри- мер, считая, что некоторое специальное значение аргумента (часто нуль) является признаком конца аргументов.
Date: 2015-09-17; view: 354; Нарушение авторских прав |