русс | укр

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

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

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

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


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

Область действия


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


Классы памяти

Вызов по значению и вызов по ссылке

 

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

При вызове по ссылке в функцию передается адрес аргумента. Переменные в вызывающей функции могут быть изменены. Функция может возвращать более одного значения.

Примере: используется функция iadder() из предыдущего раздела. Переменные передаются в функцию по ссылке.

#include <stdio.h>

int iadder(int *pix,int *piy);

main()

{

int ia=23;

int ib=13;

int ic;

ic=iadder(&ia, &ib);

printf("The sum is: %d\n", ic);

return(0);

}

int iadder (int *pix,int *piy)

{

int iz;

iz=*pix+*piy;

return(iz);

}

В качестве аргументов при объявлении функций можно использовать переменные и указатели. Кроме переменных и указателей можно использовать ссылочный тип (reference). Ссылочный тип задает адрес, но не требует операции обращения по адресу.

Пример:

#include <iostream.h>

int iadder(int &rix,int &riy);

main()

{

int ia=23;

int ib=13;

int ic;

ic=iadder(ia, ib);

cout << "The sum is: " << ic << endi;

return(0);

}

int iadder(int &rix,int &riy)

{

int iz;

iz=rix+riy;

return(iz);

}

Функции также могут иметь класс памяти extern и static. Функция объявляется с классом памяти extern, если она описана в другом файле, внешнем по отношению к данной программе. Невозможно объявить функцию static так, чтобы к ней можно было обращаться извне, кроме как из файла, где она описана.



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

Локальную переменную можно использовать в описании функции. Тогда ее область действия ограничена этой функцией. Эта переменная считается доступной или видимой только внутри функции и имеет локальную область действия.

Переменные с областью действия внутри файла объявляются вне отдельных функций или классов. Эти переменные доступны или видимы во всем файле, где они объявлены и являются глобальными.

Можно задать переменную с областью действия внутри файла, а затем включить ее в описание функции, сделав область ее действия локальной. В этом случае локальная область действия имеет приоритет над файловой. Имеется новое программное средство, называемое операцией уточнения области действия (::). Когда используется эта операция, выполняется обращение не к локальной переменной, а к переменной с областью действия внутри всего файла. Тогда переменная становится глобальной. Синтаксис обращения к глобальной переменной:

::yourvaridble



<== предыдущая лекция | следующая лекция ==>
Прототипы функций | Аргументы функции


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


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

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

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


 


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

 
 

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

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