указатель в си
Автор Евгений Старосветский задал вопрос в разделе Другие языки и технологии
да зачем нужны эти указатели ?? C++. Зачем нужны указатели? почему не обойтись без простой переменной?? и получил лучший ответ
Ответ от Николай Веселуха[гуру]
Указатель содержит адрес первого байта объекта в памяти, тип указателя, говорит о том сколько памяти выделено под данный объект. Эти его особенности позволяют работать напрямую с объектом, обращаясь к нему по указателю из любой точки программы, куда этот указатель передан. Если указатель разыменовать, что можно получить доступ к значениям объекта. А адресная арифметика позволяет эффективно работать с массивами, элементы которых в памяти расположены последовательно. Указатели позволяют структурные переменные связывать между собой в динамические структуры данных (списки, деревья) и выполнять над ними различные действия.
Проще при чтение кода.
Потому что место на стеке у тебя не бесконечное и у переменной ограниченая зона видимости. И только попробуй заикнись о глобальных - любой внятный программист тебя говном закидает.
А еще я б посмотрел как ты массивы по сто-двести элементов в виде отдельных переменных сделаешь. Или какой-нибудь связный список.
По двум причинам.
Во-первых, для совместимости с С, операции которого были приближены к ассемблерным, а вся работа компьютера на машинном уровне построена на использовании адресов переменных, то есть на указателях. Просто в С/C++ они не "упрятаны под ковер", а используются явно, что облегчает программисту понимание того, как будет выполняться программа компьютером.
Во-вторых, потому что они нужны в сложных структурах данных, когда ты связываешь переменные в цепочки. Конечно, для вычисления таблицы умножения они не нужны. Но программист большей частью работает не с "простыми переменными", а со сложными структурами данных, которые все построены на использовании указателей.
Вообще указатели - такая простая вещь, что о них не стоит и говорить. Их использование расширяет возможности программиста и упрощает программирование, вот и все.
например, для динамического выделения памяти под массив
да, на здоровье, пользуйтесь простыми переменными.. . на сколько вам этого хватит.
Оператор return в СИ
Оператор return возвращает то, что ты укажешь ему.
Оперируют в большинстве только со
подробнее...
Что за ключевые слова extern и static в С++?
Вообще-то они еще в Си были.
extern - переменная где-то объявлена, но не в этой единице
подробнее...
Динамическое выделение памяти, при сравнении строк. (Си без использования встр. функций)
> char *pass;
> scanf("%s", &pass);
Это не будет работать!
В переменной pass
подробнее...
Есть ли в языке Си ссылки? Указатели там точно есть. А ссылки? (или ссылки это уже С++)
В Си нет, только указатели.
Ссылки в С++ -- это, фактически, синтаксический сахар над
подробнее...
Помогие решить задачу на языке Си
Если считать с нуля, то её позиция 2 🙂
#include <stdio.h>
#include
подробнее...
Чем указатели лучше переменных?
Указатели - тоже тип переменных. Но идея понятна. Не лучше, не хуже. Хороши на своем месте.
подробнее...
Что значит "null" в программировании?
Это 0 в виде указателя. Посмотри определение в include, сам увидишь. Какие проблемы.
подробнее...
что такое null null
NULL может означать следующее:
- NULL (Си и Си++) — в языках программирования Си и C++
подробнее...
Что такое стек и куча? Они абстрактные понятия, или же конкретные? Очень сильно запутался.
Стек и куча (абстрактные) - это специально организованные области памяти. Берешь память - например,
подробнее...
Что такое номер прерывания и вектор прерывания?
Вектор прерывания - это указатель на адрес расположения инструкций, которые должны быть выполнены
подробнее...
Аргументы командной строки (С)
целое - это количество аргументов командной строки.
Двойной указатель на чар - потому что в
подробнее...
Что означает "null"?
Ошибка сайта в данном случае. Но вообще это устройство для безвозвратного слива данных. Типа черной
подробнее...
Ассоциативные массивы PHP
гугли понятие "хэш-таблица"
Грубо говоря, пхп создает массив, где четные элементы -
подробнее...