Студопедия Главная Случайная страница Обратная связь

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

Инициализация указателей. Инициализация указателей имеет две формы:





Инициализация указателей имеет две формы:

 

type * имя указателя = инициирующее выражение;

type * имя указателя (инициирующее выражение);

В качестве инициирующего выражения может быть:

1) явно заданный адрес участка памяти: type * имя = (type *) 0x158e0ffc;

2) выражение, возвращающее адрес объекта с помощью операции '&':

type count=; type_1* iptr = (type_1*) & count;

3) указатель, имеющий значение:

char ch = '+', *R = & ch; char *ptr = R;

4) инициирующее выражениеравно пустому указателю: NULL – специальное обозначение указателя ни на что не указывающего. char * ch (0) эквивалентно char * ch (NULL).

Доступ к значению объекта, адресуемому указателем, обеспечивает операция разыменования, выражение: *имя указателя; позволяет получить значение самого объекта:

 

char cc = 'a', *pc = &cc; cout << *pc;

и изменить это значение: *pc = '+'; cin >> *pc;

Можно сказать, что * указатель обладает правами переменной.

Если определен указатель без инициализации: сhar *p, использовать выражение *p в операциях присваивания или в операторе ввода не правомерно. Указатель p не обладает значением - адресом участка памяти, куда можно было занести значение. Указателю можно присвоить адрес участка памяти объекта типа char:

1) p = new char; // динамическое выделение, delete (p) - освобождение памяти

2) p = (char *) 0x157e0ffc;//значение адреса преобразуется к указателю char*

3) p =(char*) malloc (sizeof (char));

// динамическое выделение памяти free (p) – освобождение памяти

4) p присвоить адрес переменной типа char: char c; p = &c;

5) p присвоить значение другого указателя на данные типа char*:

char s, *ptr=&s; p=ptr;

Теперь допустимы операции *p ='+'; cin >> *p;







Дата добавления: 2015-08-12; просмотров: 396. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


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


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Способы тактических действий при проведении специальных операций Специальные операции проводятся с применением следующих основных тактических способов действий: охрана...

Искусство подбора персонала. Как оценить человека за час Искусство подбора персонала. Как оценить человека за час...

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

ТЕОРИЯ ЗАЩИТНЫХ МЕХАНИЗМОВ ЛИЧНОСТИ В современной психологической литературе встречаются различные термины, касающиеся феноменов защиты...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Studopedia.info - Студопедия - 2014-2025 год . (0.009 сек.) русская версия | украинская версия