#c #pointers
#c #указатели
Вопрос:
У меня возникли небольшие проблемы с пониманием следующего вопроса.
«Учитывая, что указатель содержит значение адреса памяти, почему разрешено добавлять целочисленный тип данных в переменную указателя, но не двойной тип данных».
У меня такое чувство, что это может иметь какое-то отношение к размерам адресов? но я сейчас борюсь с механикой указателей = [
Комментарии:
1. Вы из страны, где распространены нецелочисленные адреса, такие как «Queen’s Road 2.74» или «3.14159265, улица Вязов»?
2. Потому что вы не можете обратиться к блоку памяти в позиции 3,1415 @molbdnilo: Черт, на 20 секунд быстрее меня 🙂
Ответ №1:
Вы не можете указать на половину байта. Или 0,09999999998 от единицы. Это так просто. Нет смысла иметь нецелое значение адреса памяти, поэтому такая бессмысленная операция недопустима.
Ответ №2:
Нет, ничего общего с размерами адресов. Это больше связано с точностью. Число с плавающей запятой не является точным там, где целое число является точным по определению.
Это немного похоже на сравнение широты и долготы с адресом проживания. Что бы вы поставили на букву ??? … это называется адресом памяти по какой-то причине 😉