Что происходит при инкременте и декременте указателя?
Содержавшийся в указателе адрес увеличивается или уменьшается на размер указывае мого типа {и не обязательно на один байт). Таким образом, компилятор гарантирует, что указатель никогда не будет указывать на середину или конец данных, помещенных в па мять, а только на их начало.
Если указатель был объявлен так:
Тип* рТип * А дрес;
то оператор ++ртип означал бы, что указатель рТип содержит адрес (указывает на) А дрес + s i z e o f {Тип).
В листинге 8.9 показан результат инкремента указателей или добавления смещений к ним.
ЛИСТИНГ 8.9. Динамическое резервирование на основании потребности, исследование приращения указателей при помощи значений смещения и оператора ++_____________
#include
using namespace std;
2
int main()
cout « "How many integers you wish to enter? ";
int InputNums = 0;
cin » InputNums;
8
int* pNumbers = new int [InputNums]; // резервирование требуемого
количества целых чисел
int* рСору = pNumbers;
cout«"Successfully allocated memory for "<
Do'stlaringiz bilan baham: |