Собственно, зачем мы пишем тип данных перед объявлением переменной-указателя? Если указатели хранят адрес ячейки, то какое им дело, что лежит по этому адресу?
Собственно зачем мы пишем тип данных перед объявлении переменной-указателя?
Собственно за тем же, зачем мы указываем тип переменной. Когда приходит время работать с разъименованным указателем (то есть с переменной), то транслятору нужно знать какой это тип, чтобы правильно применять операции к этому типу.
Если указатели хранят адрес ячейки то какое им дело что лежит по этому адресу?
Пока указатели просто хранят адрес им (то есть транслятору) все равно. Но когда начинается использование данных по этому адресу, то транслятору нужно знать тип этих данных.
UPD1:
Нужно понимать, что (к примеру) когда суммируются два целых (int) числа, то транслятор вызывает одну функцию. А когда суммируются два float числа, то транслятор вызывает совсем другую функцию. Поэтому в программировании важна не только информация об операциях над переменными, но и также не менее важна информация об типах этих переменных.
Скорее, чтобы компилятор знал с какими данными он работает,и как с ними можно манипулировать. Чтоб при разыменовывании указателя знать на какую память он ссылается - размер типа(байты). Всё таки C++ - статически типизированный язык программирования.
Считается, что указателями сложно управлять. Довольна часто неверная инициализация указателей приводит к ошибкам, которые трудно обнаружить. Если компилятор будет знать, какой тип данных будет хранится по указателю, то некоторые ошибки можно будет избежать.
Также при инкрементировании указателя, программа должна знать размер типа данных на который указывает указатель.
Если не хотите объявлять тип указателя, то всегда можно использовать пустой тип void.
Если представить, что тип переменной - это улица, а значение переменной - это собственно номер квартиры, тогда можно понять, зачем нужет тип. Компилятор не в состоянии найти квартиру без адреса, + ко всему типы данных очень сильно влияет на функционал переменной. Поэтому и нужно использовть тип данных при инициализации переменной-указателя.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне необходимо только передать пару строк на ардуино, ничего от нее получать не надоНо проблема в том, как только я пытаюсь записать данные...
НЕ получается запустить проект на spring boot ругается что нету многих бинов
Есть значения int от 1 до 8Я хочу, что бы в соответствии со значением выводился символ char от a до h