Добавление целочисленного значения типа данных к указателю, но не double

#c #pointers

#c #указатели

Вопрос:

У меня возникли небольшие проблемы с пониманием следующего вопроса.

«Учитывая, что указатель содержит значение адреса памяти, почему разрешено добавлять целочисленный тип данных в переменную указателя, но не двойной тип данных».

У меня такое чувство, что это может иметь какое-то отношение к размерам адресов? но я сейчас борюсь с механикой указателей = [

Комментарии:

1. Вы из страны, где распространены нецелочисленные адреса, такие как «Queen’s Road 2.74» или «3.14159265, улица Вязов»?

2. Потому что вы не можете обратиться к блоку памяти в позиции 3,1415 @molbdnilo: Черт, на 20 секунд быстрее меня 🙂

Ответ №1:

Вы не можете указать на половину байта. Или 0,09999999998 от единицы. Это так просто. Нет смысла иметь нецелое значение адреса памяти, поэтому такая бессмысленная операция недопустима.

Ответ №2:

Нет, ничего общего с размерами адресов. Это больше связано с точностью. Число с плавающей запятой не является точным там, где целое число является точным по определению.

Это немного похоже на сравнение широты и долготы с адресом проживания. Что бы вы поставили на букву ??? … это называется адресом памяти по какой-то причине 😉