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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ДЕСАНТУРА
6 / 6 / 3
Регистрация: 25.02.2015
Сообщений: 179
#1

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

05.09.2015, 13:05. Просмотров 258. Ответов 6
Метки нет (Все метки)

Собственно интересует, что значит обратиться к "-1" элементу в массиве "old_vtable_" и что я присвою 3 элементу в массиве "_array"?. Объясните пожалуйста.

C++
1
2
3
4
DWORD** old_vtable_ = 0;
DWORD** _array = 0;
 
_array[2] = old_vtable_[-1];
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2015, 13:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что значит запись (C++):

C++ Что значит запись - C++
Скажите, пожалуйста, что означает эта запись? Идет цикл, а дальше я не знаю, что значат эти числа 65 и 122? Разъясните, пожалуйста,...

Что значит запись в макросе - C++
#define MAX(x,y) (x > y ? x : y) Собсно,макрос,который находит наибольшее число. Вначале идёт сравнение,а вот дальше я не понял,для...

Нюансы синтаксиса:что значит запись f *= i ? - C++
#include <iostream> #include<stdio.h> #include<conio.h> #include<math.h> using namespace std; void main(void) ...

Нюансы синтаксиса: что значит запись newPtr-> nextPtr=firstPtr ? - C++
В книге Дейтела Харви, в главе 15 при разборе связного списка встретил такое выражение " newPtr-> nextPtr=firstPtr ", не могу поеять как...

Что значит запись char massiv[] = "text" ? - C++
Почему не указан размер массива и присваивается строка?

Что значит запись "if (b & 1)" - C++
что значит if (b & 1) почему когда b = 6 не проходит? т.к. четная?

6
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,870
Записей в блоге: 3
Завершенные тесты: 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);
1
beam
0 / 0 / 0
Регистрация: 22.05.2015
Сообщений: 57
05.09.2015, 13:16 #3
а почему используется 2 **? Указатель ведь с 1 звездой
0
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,870
Записей в блоге: 3
Завершенные тесты: 1
05.09.2015, 13:21 #4
Цитата Сообщение от beam Посмотреть сообщение
а почему используется 2 **? Указатель ведь с 1 звездой
указатель на указатель
1
ДЕСАНТУРА
6 / 6 / 3
Регистрация: 25.02.2015
Сообщений: 179
05.09.2015, 13:43  [ТС] #5
Цитата Сообщение от Croessmah Посмотреть сообщение
будет развернуто в
Код C++Выделить код
1
*(_array+2) = *(old_vtable_-1);
И все же - адрес первого элемента массива будет [0], а чему будет равен [-1], это адрес чего будет?
0
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,870
Записей в блоге: 3
Завершенные тесты: 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
1
ДЕСАНТУРА
6 / 6 / 3
Регистрация: 25.02.2015
Сообщений: 179
05.09.2015, 14:08  [ТС] #7
Цитата Сообщение от Croessmah Посмотреть сообщение
Это будет адрес памяти (элемента) "перед" тем, на который "указывает" old_vtable_
понял спасибо
0
05.09.2015, 14:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2015, 14:08
Привет! Вот еще темы с ответами:

Что значит Handle hf? Что в эту функцию нужно передавать - C++
мне нужно создать функцию Node * ReadNode(HANDLE hf); (Node это структура) Так вот вопрос в том что значит Handle hf? Что в эту функцию...

Sleep(8000) - что значит? На что можно заменить в борланд с++? - C++
Не распознаёт Sleep(8000) . Если за комментировать пишет что f заданно но не используется. Как исправить? ...

Что значит new () - C++
Случайно ошибся и написал double *F1 = new double (count); вместо double *F1 = new double ; компилятор не выдал ошибки,но приложение не...

Что значит? - C++
std::cout &lt;&lt; (myCircle.pointInCircle(x, y) ? &quot;In circle&quot; : &quot;Out of circle&quot;); Что означет эта строчка?


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru