Форум программистов, компьютерный форум CyberForum.ru

Что значит запись - C++

Восстановить пароль Регистрация
 
ДЕСАНТУРА
6 / 6 / 3
Регистрация: 25.02.2015
Сообщений: 173
05.09.2015, 13:05     Что значит запись #1
Собственно интересует, что значит обратиться к "-1" элементу в массиве "old_vtable_" и что я присвою 3 элементу в массиве "_array"?. Объясните пожалуйста.

C++
1
2
3
4
DWORD** old_vtable_ = 0;
DWORD** _array = 0;
 
_array[2] = old_vtable_[-1];
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2015, 13:05     Что значит запись
Посмотрите здесь:

C++ что значит /=
Что значит? C++
Sleep(8000) - что значит? На что можно заменить в борланд с++? C++
C++ Что значит new ()
C++ Что значит Handle hf? Что в эту функцию нужно передавать
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11813 / 6792 / 768
Регистрация: 27.09.2012
Сообщений: 16,855
Записей в блоге: 2
Завершенные тесты: 1
05.09.2015, 13:08     Что значит запись #2
Цитата Сообщение от ДЕСАНТУРА Посмотреть сообщение
Объясните пожалуйста.
для указателей запись вида pointer[index] будет развернута в *(pointer+index):
Соответственно
C++
1
_array[2] = old_vtable_[-1];
будет развернуто в
C++
1
*(_array+2) = *(old_vtable_-1);
beam
0 / 0 / 0
Регистрация: 22.05.2015
Сообщений: 39
05.09.2015, 13:16     Что значит запись #3
а почему используется 2 **? Указатель ведь с 1 звездой
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11813 / 6792 / 768
Регистрация: 27.09.2012
Сообщений: 16,855
Записей в блоге: 2
Завершенные тесты: 1
05.09.2015, 13:21     Что значит запись #4
Цитата Сообщение от beam Посмотреть сообщение
а почему используется 2 **? Указатель ведь с 1 звездой
указатель на указатель
ДЕСАНТУРА
6 / 6 / 3
Регистрация: 25.02.2015
Сообщений: 173
05.09.2015, 13:43  [ТС]     Что значит запись #5
Цитата Сообщение от Croessmah Посмотреть сообщение
будет развернуто в
Код C++Выделить код
1
*(_array+2) = *(old_vtable_-1);
И все же - адрес первого элемента массива будет [0], а чему будет равен [-1], это адрес чего будет?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11813 / 6792 / 768
Регистрация: 27.09.2012
Сообщений: 16,855
Записей в блоге: 2
Завершенные тесты: 1
05.09.2015, 13:48     Что значит запись #6
Цитата Сообщение от ДЕСАНТУРА Посмотреть сообщение
это адрес чего будет?
Это будет адрес памяти (элемента) "перед" тем, на который "указывает" old_vtable_
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    int * p = new int ;
    std::cout << p << std::endl ;
    std::cout << (p-1) << std::endl ;
}
http://rextester.com/DTW49239
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2015, 14:08     Что значит запись
Еще ссылки по теме:

C++ что значит ?
Что значит ->? C++
Что значит запись в макросе C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ДЕСАНТУРА
6 / 6 / 3
Регистрация: 25.02.2015
Сообщений: 173
05.09.2015, 14:08  [ТС]     Что значит запись #7
Цитата Сообщение от Croessmah Посмотреть сообщение
Это будет адрес памяти (элемента) "перед" тем, на который "указывает" old_vtable_
понял спасибо
Yandex
Объявления
05.09.2015, 14:08     Что значит запись
Ответ Создать тему
Опции темы

Текущее время: 12:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru