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

Указатель на void

Читайте также:
  1. Алфавитный указатель
  2. Алфавитный указатель
  3. Алфавитный указатель
  4. БИОГРАФИЧЕСКИЙ УКАЗАТЕЛЬ
  5. ИМЕННОЙ УКАЗАТЕЛЬ
  6. ИМЕННОЙ УКАЗАТЕЛЬ
  7. Использование указателя this. Доступ к компонентным данным через указатель this. Использование this для возврата значений.
  8. Предметный указатель
  9. Предметный указатель
  10. Предметный указатель
  11. Предметный указатель
  12. ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ

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

Указатель может быть константой или переменной, а также указывает на константу или переменную.

Int I; //целая переменная

Const int ci = 1; //целая константа

Int * pi; //указатель на целую переменную

Const int * pci; //указатель на целую константу

Int * const cp = &I; //указатель-константа на целую переменную

Const int * cont cpc = &ci;//указатель-константа на целую переменную

Доступ к выделенным участкам динамической памяти, называемым динамическими переменными, производится только через указатели. Время жизни динамических переменных – от точки создания до конца программы или до явного освобождения памяти. В С++ используются два способа работы с динамической памятью. Первый использует семейство функции malloc и достался в наследство от С, второй использует операции new и delete.

1. Присваивание указателю адреса существующего объекта:

a. С помощью операции получения адреса:

Int a=5; //целая переменная

Int*p=&a; //в указатель записывается адрес а

Int*p(&a); //то же самое другим способом

b. С помощью значения другого инициализированного указателя;

Int*r=p;

c. С помощью имени массива или функции, которые трактуются как адрес:

Int b[10]; //массив

Int*t=b; //присваивание адреса начала массива

Void f(int a){/*…*/} //определение функции

Void (*pf)(int); // указатель на функцию

Pf=f; //присваивание адреса функции

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

Char* vp=(char *) oxB8000000;

Здесь 0x680000000 – шестнадцатеричная константа, (char *) – операция приведения типа: константа преобразуется к типу <указатель на char>.

3. Присваивание пустого значения:

Int* suxx = NULL;

Int* rulez = 0:

4. Выделение участка динамической памяти и присваивание её адреса указателю:

· С помощью операции new:

Int* n=new int; //1

Int* m= new int (10); //2

Int* q= new int [10]; //3

· C помощью функции malloc:

Int* u= (int*)malloc(sizeof(int));// 4

При интерпретации сложных описаний необходимо придерживаться правила <изнутри наружу>:

1. Если справа от имени имеются квадратные скобки, это массив, если круглые – это функция;

2. Если слева есть звездочка, это указатель на проинтерпретированную ранее конструкцию;

3. Если справа встречается закрывающая круглая скобка, необходимо применить приведенные выше правила внутри скобок, а затем переходить наружу;

4. В последнюю очередь интерпретируется спецификатор типа.

Ссылки – представляет собой синоним имени, указанного при инициализации ссылки. Ссылку можно рассматривать как указатель, который всегда разыменовывается. Формат объявления ссылки:

Тип%имя;

Где тип – это тип величины, на которую указывает ссылка, & - оператор ссылки, означающий, что следующее за ним имя является именем переменной ссылочного типа.

Правила использования ссылок:

· Переменная-ссылка должна явно инициализироваться при её описании, кроме случаем, когда она является параметром функции, описана как extern или ссылается на поле данных класса.

· Тип ссылки должен совпадать с типом величины, на которую она ссылается.

· Не разрешается определять указатели на ссылки, создавать массивы ссылок и ссылки на ссылки.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)