Какая структура данных для хранения адресов объектов в C ++ - PullRequest
1 голос
/ 18 марта 2012

Я новичок в C ++, мне нужно знать, в какой структуре данных хранить адреса объектов в C ++.

Спасибо

Ответы [ 2 ]

3 голосов
/ 18 марта 2012

Вам потребуется использовать то, что называется «указатель».

Нормальные переменные, такие как

int a = 5 ;
double r = 39.9 ;

Содержат значения, которые ваша программа должна прочитать и использовать.

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

Например:

int *pA ;
pA = &a ;      // pA is now a POINTER to a
*pA = 4 ;      // variable a now contains 4, not 5!

Итак, в вышесказанном происходит несколько вещей.Сначала переменная-указатель pA объявляется с помощью * в своем объявлении.

int *pA ;

Далее мы даем pA значение.Какое значение?Почему адрес a!

pA = &a ;

Функция pA похожа на вторичный дескриптор переменной a.Когда вы изменяете то, на что указывает pA, вы фактически изменяете переменную a сейчас .

*pA = 4 ;

Переменная pA, на которую указывает в данный момент (то есть a), изменяется на 4.

Смотрите эти видео для отличной визуализации.

2 голосов
/ 18 марта 2012

Указатель.(и вот немного ТАКОГО дополнения:)

...