русс | укр

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

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

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

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


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

Delete для массива.


Дата добавления: 2014-04-05; просмотров: 662; Нарушение авторских прав


 

Ссылки.

 

Косвенное обращение к объекту.

Указатель (pointer) – переменная, Ссылка (reference)

переменная, которая явно содержит адрес объекта. которая тоже содержит адрес объекта, но синтаксически ею пользуется также, как и самим объектом.

1. Объявление:

int *p=&x; int &r=x; // ссылка с именем

 

2. Инициализация:

int *p; //OK //int &r; // ERROR!!!

3. Получение значений:

int tmp=*p; int tmp=r;

(*p)++; r++;

Примечание. Ссылку можно интерпретировать как константный указатель, при каждом использовании которого, автоматически происходит разыменование.

4. Модификация адреса. Если указатель не объявлен как константный, то значение такого адреса можно изменять. Ссылка тоже содержит адрес, но этот адрес формируется один раз при инициализации, и изменить его невозможно.

p++; //OK r++;

int y; int y=5;

p=&y; //OK r=y; //r=y=x=5;

Комментарий: переменной x (адрес которой содержится в ссылке r) будет присвоено значение y.

 

5. Нулевое значение. Указатель может быть равен нулю (никуда не указывает). Ссылка всегда содержит адрес того объекта, которым она была проинициализирована.

if (p) if (r)

 

6. Применение оператора &. Чтобы получить указатель на объект, псевдонимом которого является ссылка r, можно применить к ссылке операцию получения адреса объекта (&).

int **pp=&p; int *pr=&r; (указывает на объект, псевдоним

которого является

int y=**pp;

ссылка, то есть pr содержит адрес r

переменной x

7. Ссылка на указатель.

int n; ссылки на ссылку не

существует

int *p=&n; int n;

int *&refp=p; int &r=n;

*ref p=2; //n=2; int &rr=r; // ERROR!!!

*p=4;

8. void

void *p; //OK void &r=x;

//ERROR!!!

не знаем какого типа или какая память выделится т.к. ссылка – это всегда псевдоним совершенно определённого объекта



9. size of

double *p; double d;

size_t n=sizeof(p); //4 байта double &rd=d;

size_t n=sizeof(rd); //8 байт

10. Инициализация литералом.

константная ссылка

int *p=0x10000000; //ERROR!//СИ int &r=1; //ERROR!!!

int *p=(int*)0x10000000; //OK!//СИ++ const int &r=1; //OK!

int *p=reinterpret_cast<int*>(0x10000000);

 

Функции.

 

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

Функции позволяют:

1. не писать многократно один и тот же код, который выполняет одни и те же действия с разными наборами данных;

2. позволяет использовать посредством функций чужой код;

3. улучшить структуру программы;

4. справиться со сложностью восприятия больших программ.

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

Используя прототип, компилятор может выполнить контроль числа аргументов и проверить соответствие их типов при вызове функции.

При необходимости компилятор может произвести неявное преобразование типа.

[спецификатор][тип][соглашение по вызову] имя_функций ([список_аргументов] //[void])

или

[] - необязательно, ( ) – обязательно.

Спецификатор: соглашение по функции.

[Тип]: задаёт тип возвращённое функцией значение.

Если поле отсутствует, то функция должна возвращать int.

Если void не возвращает значение

char MyFunc()

char MyFunc()

void MyFunc() //тип возвращённого значения – int

Имя функции – особый тип указателя, называется указателем на функцию. Его значение является адрес-точка входа в функцию.

Список аргументов. Определяет количество и тип аргументов (параметров), передаваемых в функцию.

Список_аргументов==тип_аргумента1[имя_аргумента1], тип_аргумента2[имя_аргумента2]…

Если в функцию не передавать аргументы, то поле пустое или содержит void.

 

Определение функции (реализация).

Определение функции включает те же поля, что и прототип функции + тело функции – код, выполняющийся при вызове функции (заключён в {}).

double summa (double a, double b)

{

Double c;

c=a+b;

Return c;

}

Вызов функции: для обеспечения эффективного и безопасного вызова функций требуется обеспечить:

Связь по управлению;

a) вызов и возврат;

b) сохранение и восстановление контекста вызывающей части;



<== предыдущая лекция | следующая лекция ==>
Размерности массива могут измениться в процессе программы. | Функция должна производить одни и те же действия с разными наборами данных.


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


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

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

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


 


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

 
 

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

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