![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
![]()
Недавно начал изучать динамическое распределение памяти и появился небольшой вопрос. Я написал программу в которой создается динамический массив объектов. Собственно вопрос в том, почему в цикле for обращение к методам идет не через операцию ->, а через операцию точки. Ведь ptr вроде как указатель.
Код:
|
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,149
|
![]()
ptr - указатель
ptr[i] - объект
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
ptr - указатель. *(ptr+5) и ptr[5] - одно и то же.
Сравните: Код:
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
![]()
Ясно, спасибо
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
![]()
И все таки я ничего не понял... Почему в примере выше доступ к методом получаем через операцию точки, а тут уже через стрелку?
Код:
|
![]() |
![]() |
![]() |
#6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,149
|
![]()
Person *ptr[5]; - массив из 5 указателей на Person.
ptr - указатель на массив указателей.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
![]()
А разве ptr не является тем же массивом из amount указателей на класс Test?
Я вот смотрю на оба примера, чувствую истину, а до конца все равно уловить не могу..( Последний раз редактировалось Dima-War; 19.05.2013 в 22:51. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
чуешь разницу:
Test *ptr; //один указатель и Person *ptr[5]; //массив из 5ти указателей |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 17.03.2012
Сообщений: 105
|
![]()
Ну да, тут я вижу разницу.
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Код:
Это касается и случая, когда Type - сам указатель: Код:
Это вообще не имеет отношения к тому, что там в эти переменные занесли, в них может быть хоть NULL. Если переменная объявлена вот так, то компилятор будет обходиться с ней вот таким образом. |
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
получить строку по указателю | jivvs | Общие вопросы C/C++ | 3 | 19.01.2011 18:40 |
есть ли что то по указателю? | the_deer_one | Общие вопросы C/C++ | 3 | 21.08.2010 23:18 |
Вопрос по указателю | marazmaticus | Общие вопросы C/C++ | 6 | 12.03.2010 00:05 |
Передача массива по указателю | liver1981 | Общие вопросы C/C++ | 3 | 21.04.2009 17:07 |
Зачем указателю тип? | Scratch | Общие вопросы C/C++ | 5 | 30.09.2008 11:48 |