Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Операции с указателямиКроме операции разыменовывания к указателям применимы еще и некоторые арифметические операции (+, ++, -, --, +=, -=) и преобразования. Например, мы можем преобразовать число в указатель:
Так как у нас x - указатель на объект int, который занимает 4 байта, то мы можем получить следующий за ним байт с помощью выражения byte* chp = (byte*)addr+4;. Теперь указатель bytePointer указывает на следующий байт. Равным образом мы можем создать и другой указатель double* doublePointer = (double*)addr + 4;, только этот указатель уже будет указывать на следующие 8 байт, так как тип double занимает 8 байт. Чтобы обратно получить исходный адрес, вызываем выражение bytePointer - 4. Здесь bytePointer - это указатель, а не число, и операции вычитания и сложения будут происходить в соответствии с правилами арифметики указателей. Например:
Хотя мы к указателю прибавляем число 4, но итоговый адрес увеличится на 8, так как размер объекта char - 2 байта, а 2*4=8. Подобным образом действует сложение с другими типа указателей:
Аналогично работает вычитание: doublePointer -=2 установит в указателе doublePointer в качестве адреса число 123008
|