Автор Артём Артемьев задал вопрос в разделе Другие языки и технологии
Чем указатели лучше переменных? и получил лучший ответ
Ответ от Krab Bark[гуру]
Указатели - тоже тип переменных. Но идея понятна. Не лучше, не хуже. Хороши на своем месте. Программы часто работают с косвенной адресацией данных, но не всегда. Можно замести это под ковер, можно держать на виду. С предпочитает держать на виду, чтобы программисту была прозрачнее реализация запрограммированных действий.
Ответ от Александр Пожарский[гуру]
Как ни странно - указатели должны указывать на что-то 🙂
Как ни странно - указатели должны указывать на что-то 🙂
Ответ от Купцов Дмитрий[эксперт]
Переменные хранят значения, а указатели только адреса памяти. Указатели всегда занимают 2 байта, например, double туда уже не запихнуть. Наверное как-то так…
Переменные хранят значения, а указатели только адреса памяти. Указатели всегда занимают 2 байта, например, double туда уже не запихнуть. Наверное как-то так…
Ответ от ~~[гуру]
У указателе хранится адрес вашей переменной.
Если нет переменной, то нет смысла в указателе (на что он будет указывать?) .
Но без указателя нет смысла в переменной, потому что не зная ее адреса, не сможем с ней работать.
Так что учи мат. часть!
>>Указатели всегда занимают 2 байта
Купцов Дмитрий, Вы что со времен динозавров? Или учились программировать на допотопных компах, 40 летней давности?
2 байта они занимают в том случае, если адресация памяти не больше 64 КБ.
В современных компах, указатели занимают 4 байта для 32 битных систем и 8 байт для 64 битных систем.
У указателе хранится адрес вашей переменной.
Если нет переменной, то нет смысла в указателе (на что он будет указывать?) .
Но без указателя нет смысла в переменной, потому что не зная ее адреса, не сможем с ней работать.
Так что учи мат. часть!
>>Указатели всегда занимают 2 байта
Купцов Дмитрий, Вы что со времен динозавров? Или учились программировать на допотопных компах, 40 летней давности?
2 байта они занимают в том случае, если адресация памяти не больше 64 КБ.
В современных компах, указатели занимают 4 байта для 32 битных систем и 8 байт для 64 битных систем.
Ответ от JaM[гуру]
Например, чтобы не копировать блок данных метров на 300 в ОП лишний раз. Проще взять указатель на начало блока и его длину.
Например, чтобы не копировать блок данных метров на 300 в ОП лишний раз. Проще взять указатель на начало блока и его длину.
Ответ от Kaiu[гуру]
когда мы пишем:
int i;
i = 10;
реально идет запись в регистр (32 бита или 64) числа 10, что намного быстрее чем из памяти брать;
Особенно если написать:
register int i; // кажись так, не помню си или с++ это
Таким образом использование переменных в си ускоряло код, особенно в те времена когда каждую команду экономили.
Регистров ограниченное кол-во, так что если много переменных, то их все же так и придется хранить в памяти и оттуда извлекать по необходимости. Хоть стек и расположен будет в кеше проца для быстродействия, но все равно регистр по любому быстрее работает.
Указатель тоже занимает место в памяти, так что если все переменные брать через указатель, то инструкция процессора более долго выполняемая, все же быстрее использовать массивы, так как указатель уже храниться в отдельном регистре и команда увеличения на 1 (i++) намного быстрее любого присваивания.
В случае использования больших объектов в памяти можно использовать только указатели (ссылки в си++ тож можно, что удобней) , но даже и тогда переменные циклов и тп используют регистры процессора.
А так действительно надо вам почитать про указатели, а еще лучше изучить ассемблер, чтоб понимать зачем изобретали язык си. В других языках еще интересней с указателями.. .
когда мы пишем:
int i;
i = 10;
реально идет запись в регистр (32 бита или 64) числа 10, что намного быстрее чем из памяти брать;
Особенно если написать:
register int i; // кажись так, не помню си или с++ это
Таким образом использование переменных в си ускоряло код, особенно в те времена когда каждую команду экономили.
Регистров ограниченное кол-во, так что если много переменных, то их все же так и придется хранить в памяти и оттуда извлекать по необходимости. Хоть стек и расположен будет в кеше проца для быстродействия, но все равно регистр по любому быстрее работает.
Указатель тоже занимает место в памяти, так что если все переменные брать через указатель, то инструкция процессора более долго выполняемая, все же быстрее использовать массивы, так как указатель уже храниться в отдельном регистре и команда увеличения на 1 (i++) намного быстрее любого присваивания.
В случае использования больших объектов в памяти можно использовать только указатели (ссылки в си++ тож можно, что удобней) , но даже и тогда переменные циклов и тп используют регистры процессора.
А так действительно надо вам почитать про указатели, а еще лучше изучить ассемблер, чтоб понимать зачем изобретали язык си. В других языках еще интересней с указателями.. .
Ответ от =Serge=[гуру]
Указатели - это другой способ работы с данными. Помимо ускорения передачи информации между функциями важно использование указателей при работе с массивами и прочими структурами, так как поддерживается косвенная адресация, непосредственно реализованная в командах всех современных процессоров. Учи ассемблер и команды процессора, все станет ясно.
Указатели - это другой способ работы с данными. Помимо ускорения передачи информации между функциями важно использование указателей при работе с массивами и прочими структурами, так как поддерживается косвенная адресация, непосредственно реализованная в командах всех современных процессоров. Учи ассемблер и команды процессора, все станет ясно.
Ответ от Alexey N[гуру]
Указатель это тоже переменная, вообще-то. Так что ваш вопрос звучит примерно так: чем колбаса лучше еды.
Указатель это тоже переменная, вообще-то. Так что ваш вопрос звучит примерно так: чем колбаса лучше еды.
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Чем указатели лучше переменных?
спросили в Нашествие
нашествия мутантов на синей линии rage как дойти до этого места написано под какимто мостом а где сам вход в пещеру ето.
Открой задания. Найди сделай Активным выйди из Города. Там тебя будет напровлять указатель) ) это
подробнее...
нашествия мутантов на синей линии rage как дойти до этого места написано под какимто мостом а где сам вход в пещеру ето.
Открой задания. Найди сделай Активным выйди из Города. Там тебя будет напровлять указатель) ) это
подробнее...
Объясните мне указатели и ссылки в С++. Для чего они нужны?
Ссылка - накладная на товар. Передать накладную в бухгалтерию легче, чем притащить туда для
подробнее...
Правда ли, что есть деревня Блядищево А то есть фотография с направлением этой деревни - или это монтаж?
Российская география снова достойно представлена в нашем обозрении. Сразу вынужден огорчить
подробнее...
Указатели С++
Node a - a является стукртурой
Node *a - а является указателем на структуру, либо на массив
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Visual Basic NET
Visual Basic .NET против C#. Кто что может сказать? Чем тот или иной язык лучше или хуже другого?
C# разрабатывался как язык новый и идеально подходящий для .NET. Жёстко завязан на объекты.
подробнее...
Visual Basic .NET против C#. Кто что может сказать? Чем тот или иной язык лучше или хуже другого?
C# разрабатывался как язык новый и идеально подходящий для .NET. Жёстко завязан на объекты.
подробнее...
что такое симлинки??
Символьная ссылка (также симлинк от англ. Symbolic link, символическая ссылка) — специальный файл в
подробнее...
спросили в Каталог
Какое различие между папкой и каталогом??!Многословно плиз! Многословно плиз!!
Папка — то же, что каталог или директория: элемент файловой системы, структура для хранения файлов
подробнее...
Какое различие между папкой и каталогом??!Многословно плиз! Многословно плиз!!
Папка — то же, что каталог или директория: элемент файловой системы, структура для хранения файлов
подробнее...
Не работает датчик топлива на ваз 21099 инжектор.
Датчик и указатель-это разные вещи.
С таким уровнем знаний вам надо обратиться к
подробнее...
Достопримечательности столицы
Проездом, это сколько времени и куда приезжаете? Я своих вожу, если часа 2-4 то Красная площадь,
подробнее...
спросили в Магия Маги
Для вас отзывы о магах,показатель их компетентности?
Для меня отзывы о магах, не показатель их компетентности, а рекламный ход!
подробнее...
Для вас отзывы о магах,показатель их компетентности?
Для меня отзывы о магах, не показатель их компетентности, а рекламный ход!
подробнее...
спросили в 1663 год
какой окрас индикатора при диссоциации в водной среде H2S04 (серной кислоты)??? помогите пожалуйста!!!
уточните индикатор уневерсальный -краснеет
лакмус-либо красный либо розовый
подробнее...
какой окрас индикатора при диссоциации в водной среде H2S04 (серной кислоты)??? помогите пожалуйста!!!
уточните индикатор уневерсальный -краснеет
лакмус-либо красный либо розовый
подробнее...