Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Как это работает

Правила приведения типов операндов | Явное приведение типа | Ii) Указатели на элементы массива | V) Массивы и функции |


Читайте также:
  1. А как вы работаете сейчас с интернет-маркетингом?
  2. В торговой точке работает 1 Промоутер
  3. Ваша группа известна во всем мире. Были ли адекватные предложения выступить за границей? Работаете ли вы в данном направлении?
  4. Внимание! Для обслуживания абонентов ОАО "МТС" в Москве работает 2 СЦ: - шоссе Энтузиастов, дом 11а, корпус 2 - ул. Леси Украинки д. 4, к. 1
  5. Глобальный маркетинг не работает
  6. ДАРМОВЩИНА, КОТОРАЯ СРАБОТАЕТ НА ВАС
  7. Если в одном и том же канале один из корреспондентов работает в АМ, а другой в FM, они будут принимать друг друга с сильными искажениями.

После обычной директивы препроцессора #include для ввода/вывода и директивы using, указан прототип ф-ии power(). Если мы уберем прототип функции и перекомпилируем программу, то компилятор не сможет правильно обработать обращения к нашей функции и сообщит об ошибках.

Мы использовали ключевое слово void в функции main(), чтобы показать, что список параметров пуст, хотя можно и не писать ничего в скобках в этом случае.

Как мы знаем, ключевое слово void может использоваться как тип возвращаемого значения, в случае когда никакого значения не возвращается. Если мы указали возвращаемый функцией тип void, то в операторе return указывать какое-либо значение нельзя

Мы будем почти правы, если скажем, что использовать функции очень просто. Например, чтобы вычислить 5.03 с помощью ф-ии power() и сохранить результат в переменной y, мы написали:

y = power(5.0, 3);

Здесь значения 5.0 и 3 называются аргументами (или фактическими параметрами). Мы передали в функцию константы, но на из месте могли бы быть любые выражения, в конечном счете продуцирующие корректный тип. Эти аргументы подставляются вместо параметров x и n, которые использованы в определении функции. Вычисления выполняются для этих значений, затем копия результата, 125, будет возвращена в вызывающую функцию, main(), которая сохранит его в переменной y. Затем мы выводим значение y на экран:

cout << endl << "5.0 cubed = " << y;

Следующий вызов нашей функции осуществлен в операторе вывода,

cout << endl << "3.0 cubed = " << power(3.0, index); // Outputting return value

так, что возвращаемое значение передается непосредственно в выходной поток. Первый аргумент – константа, второй – переменная.

Далее мы используем функцию power() в операторе:

// использование функции в качестве аргумента x = power(x, power(2.0, 2.0));

Здесь функция вызывается дважды. Первый вызов там, где он вернет значение, которое будет аргументом для второго вызова. Хотя оба аргумента при первом вызове функции указаны как 2.0, в действительности функция будет вызвана (в соответствии с прототипом) при значении второго аргумента, равном 2. Компилятор сначала превратит double в int, т. к., ему известен прототип

double power(double x, int n); // Прототип функции

Заметим, что лучше обеспечивать явное преобразование типа.

Далее, выполняемые действия аналогичны и очевидны.

Опять же заметим, что мы могли бы написать код, используя static_cast, чтобы сделать код абсолютно понятным:

x = power(x, static_cast<int>(power(2.0, static_cast<int>(2.0))));

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


<== предыдущая страница | следующая страница ==>
Объединения (union).| Проверка – Передача по значению

mybiblioteka.su - 2015-2024 год. (0.005 сек.)