русс | укр

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

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

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

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


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

Два подхода к передаче аргументов


Дата добавления: 2013-12-23; просмотров: 1083; Нарушение авторских прав


Цели, достигаемые в этой лекции

Лекция 7. Подробнее о функциях

Другие лекции

Лекция 1" Предмет и основные понятия информатики"
Лекция 2 "Системы исчисления"
Лекция 3 "Архитектура вычислительной системы. Классификация компьютеров"
Лекция 4 "Персональный компьютер: системная плата"
Лекция 5 "Персональный компьютер: внешняя память"
Лекция 6 "Персональный компьютер: стандартные устройства ввода-вывода"
Лекция 7 "Персональный компьютер: периферийные устройства ввода-вывода"
Лекция 8 " Программное обеспечение"
Лекция 9 "Сжатие данных"
Лекция 10 "Компьютерные вирусы"

 

1. Два подхода к передаче аргументов

2. Как С++ передает аргументы в функции по умолчанию

3. Как с помощью указателя создается вызов по ссылке

4. Передача ссылки в функции

5. Перегрузка функций

6. Шаблоны функций

7. Рекурсивные функций

 

Мы начнем с рассмотрения двух способов передачи в функции аргументов и с того, какие возможности возникают при их применении. Понимание механизма передачи аргументов необходимо для освоения понятия ссылки.

 

 

В принципе в компьютерном языке существуют два способа передачи подпрограмме аргумента. Первый называется передачей по значению (или вызовом по значению). Он заключается в копировании значения аргумента в параметр подпрограммы. Очевидно, что в этом случае, если подпрограмма изменит свои параметры, это никак не повлияет на аргументы, с которыми она вызывалась.

Передача по ссылке (или вызов по ссылке) является вторым способом передачи аргументов подпрограмме. В этом случае в параметр копируется адрес аргумента (не его значение). Внутри подпрограммы этот адрес используется для обращения к фактическому аргументу, указанному в вызове. Это значит, что изменения параметра повлияют на аргумент, использованный при вызове подпрограммы.



 

7.2. Как С++ передает аргументы по умолчанию

 

По умолчанию С++ использует при вызове функции передачу аргументов по значению. Это значит, что код внутри функции не может изменить аргументы, указанные при ее вызове. В этой книге все программы до сих пор использовали метод передачи по значению. Рассмотрим в качестве примера функцию reciprocal() в приведенной ниже программе:

 

/* Изменение переданного по значению параметра не изменяет аргумент. */

 

#include <iostream>

using namespace std;

 

double reciprocal(double x);

 

int main () {

double t = 10.0;

cout << "Обратное значение от 10.0 составляет " <<

reciprocal (t) << "\n";

cout << "Значение t все еще равно: " << t << "\n";

return 0 ;

}

 

// Возврат обратного значения,

double reciprocal(double x)

{

x = 1 / x; // создадим обратное значение

return x;

}

 

Вывод этой программы выглядит следующим образом:

 

Обратное значение от 10.0 составляет 0.1

Значение t все еще равно: 10

 

Как видно из вывода программы, когда внутри reciprocal() выполняется присваивание

 

x = 1/х;

 

единственное, что изменяется — это локальная переменная х. Переменная t, использованная как аргумент, будет все еще иметь значение 10; операции внутри функции никак на нее не повлияют.

 



<== предыдущая лекция | следующая лекция ==>
Список рекомендованной литературы | Использование указателя для создания вызова по ссылке


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


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

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

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


 


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

 
 

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

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