указатель в си
Автор Евгений Старосветский задал вопрос в разделе Другие языки и технологии
да зачем нужны эти указатели ?? C++. Зачем нужны указатели? почему не обойтись без простой переменной?? и получил лучший ответ
Ответ от Николай Веселуха[гуру]
Указатель содержит адрес первого байта объекта в памяти, тип указателя, говорит о том сколько памяти выделено под данный объект. Эти его особенности позволяют работать напрямую с объектом, обращаясь к нему по указателю из любой точки программы, куда этот указатель передан. Если указатель разыменовать, что можно получить доступ к значениям объекта. А адресная арифметика позволяет эффективно работать с массивами, элементы которых в памяти расположены последовательно. Указатели позволяют структурные переменные связывать между собой в динамические структуры данных (списки, деревья) и выполнять над ними различные действия.
Проще при чтение кода.
Потому что место на стеке у тебя не бесконечное и у переменной ограниченая зона видимости. И только попробуй заикнись о глобальных - любой внятный программист тебя говном закидает.
А еще я б посмотрел как ты массивы по сто-двести элементов в виде отдельных переменных сделаешь. Или какой-нибудь связный список.
По двум причинам.
Во-первых, для совместимости с С, операции которого были приближены к ассемблерным, а вся работа компьютера на машинном уровне построена на использовании адресов переменных, то есть на указателях. Просто в С/C++ они не "упрятаны под ковер", а используются явно, что облегчает программисту понимание того, как будет выполняться программа компьютером.
Во-вторых, потому что они нужны в сложных структурах данных, когда ты связываешь переменные в цепочки. Конечно, для вычисления таблицы умножения они не нужны. Но программист большей частью работает не с "простыми переменными", а со сложными структурами данных, которые все построены на использовании указателей.
Вообще указатели - такая простая вещь, что о них не стоит и говорить. Их использование расширяет возможности программиста и упрощает программирование, вот и все.
например, для динамического выделения памяти под массив
да, на здоровье, пользуйтесь простыми переменными.. . на сколько вам этого хватит.