русс | укр

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

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

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

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


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

Порядок выполнения операций над указателями


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


Указатели

Все рассмотренные ранее примеры организации переменных, называется организация статических переменных. Для таких переменных память выделяется автоматически при запуске программы и так же автоматически освобождается при завершении программы. В этом случае обращение к переменной происходит по её идентификатору. Но существует и другой способ обращения к переменной – по ее адресу, по которому записано значение. Для этого необходима переменная для хранения адреса, которая называется указателем.

Указатель– это переменная, значением которой является адрес памяти, по которому хранится объект определённого типа.

Значение указателя–это без знаковое целое представляющее собой адрес переменной любого типа.

Формат объявления указателя:

Тип [ модификатор] * имя_указателя;

Тип * имя_указателя;

Тип – идентификатор типа переменной, адрес которой будет содержать переменная-указатель.

[модификатор] – необязателен, предназначен для объявления размера ОП, отведенной под указатель. По умолчанию размер ОП установлен 16 бит.

Имя_указателя – идентификатор переменной – указатель.

*(звёздочка) – свидетельствует о том, что переменная с указанным идентификатором является указателем. Чтобы объявить несколько указателей, звёздочку ставят перед каждым идентификатором.

Пример объявления указателей

char* ps ; // указатель на символьную переменную

float *ptr ; // указатель на переменную с плавающей точкой

int *px, *py ; // указатели на целочисленые переменные

char* p, ch ;

// указатель p на символьную переменную и ch - символьная переменная.

Идентификатор переменной - указатель лучше начинать с символа р.

Пример инициализации указателей нулевым значением

char* ps = 0 ;

int *px = 0, *py = 0 ;

char *p = 0 ;

double* pD = 0 ;

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



 

& - Взять адрес.Получить адрес переменной.

Пример взятия адреса &

#include <iostream>

using namespace std ;

int main ( )

{

int x = 5 ;

int * px = & x ; // взятие адреса x

cout << "Value x\t\t" << x << endl ; // вывод значения x

cout << "Address x\t" << & x << endl ; // вывод адреса x

cout << "Pointer px\t" << px << endl ; // вывод значения px

return 0 ;

}

 

*(звёздочка) – Разыменование.Получить значение переменной по её адресу

Пример разыменовывания указателя *

#include <iostream>

using namespace std ;

int main ( )

{

double v1 = 0.05, v2 = 2.5e32 ;

double * pv ; // объявление указателя

pv = & v1 ; // взятие адреса v1

cout << "pv =\t" << pv << endl ; // вывод адреса v1

cout << "v1 =\t" << v1 << endl ; // вывод значения v1

cout << "*pv = \t" ;

cout << * pv << endl ; // вывод значения v1 по адресу который хранится в указателе pv

pv = & v2 ; // взятие адреса v2

cout << "pv =\t" << pv << endl ; // вывод адреса v2

cout << "v2 =\t" << v2 << endl ; // вывод значения v2

cout << "*pv = \t" ;

cout << * pv << endl ; // вывод значения v2 по адресу который хранится в указателе pv

return 0 ;

}

 

=- Присваивание.Присвоить указателю адрес переменной или 0.

Пример выполнения операции присвоения

int *px = 0, *py = 0 ;

double v1 = 0.05 ;

double * pv = & v1 ;

 



<== предыдущая лекция | следующая лекция ==>
Обработка двумерного массива | Операторы распределения памяти new и delete


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


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

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

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


 


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

 
 

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

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