LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии

C++. Почему при добавлении к адресу переменной +1, адрес увеличивается на8?

int *x =  new int(42);

cout << &x << endl;
cout << (&x) + 1 << endl;

output:
0x7fffa5c115c8
0x7fffa5c115d0

linux. 64
  • Вопрос задан
  • 312 просмотров
Решения вопроса 1
@vilgeforce
Раздолбай и программист
Потому что указатель начинает указывать на следующий элемент той размерности, для которой указатель создавался. Сделаете unsigned char* - будет на размер char увеличиваться (1 скорее всего), unsigned long long* - на 8. void* скорее всего вообще не даст такой фокус провернуть (и правильно сделает).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы