|
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
|
|
Недопонимание указателей03.09.2012, 14:20. Показов 3720. Ответов 32
Метки нет (Все метки)
Уже прошёл их по книжке давно, но они частенько встречаются, и я никак не могу понять некоторые процессы с ними.
Допустим есть в классе какие-то данные типа int lim, char name[lim] Методы принимают указатели допустим Name::Name (const char * nm) почему при копировании std::strncpy (name, nm, lim-1) мы указываем просто nm, а не *nm ? Ведь nm - это адрес, а само значение это *nm. Т.е по сути в name мы копируем адрес, но всё правильно работает и выводит то, что надо, а не адрес, как я думаю. Поясните плз, что я не таак понимаю
0
|
|
| 03.09.2012, 14:20 | |
|
Ответы с готовыми решениями:
32
Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей? Недопонимание кода Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си) |
|
Комп_Оратор)
|
||
| 03.09.2012, 18:59 | ||
0
|
||
|
44 / 44 / 17
Регистрация: 13.09.2012
Сообщений: 196
|
|
| 14.09.2012, 16:25 | |
|
Кстати, а почему так происходит?
Я про пример Hydrogen Отправили переменную int g себе ее скопировал (положил значение в свою ячейку) инкрементировался, потом еще инкрементировался Потом вышли из блока, и память освободилась, и 6 в ячейке памяти осталось, только теперь эта ячейка свободна, и другая переменная ее может использовать. В чем дело?
0
|
|
|
Комп_Оратор)
|
||
| 14.09.2012, 17:08 | ||
|
Сигнатура объявления или заголовок функции: Тип Имя ( Тип1 <Имя1>, Тип2 <Имя2>, Тип3 <Имя3>....); В сигнатуре описания: Тип Имя ( Тип1 Имя1, Тип2 Имя2, Тип3 Имя3....){} Это не спроста, что здесь Имя1, Имя2, Имя3 должны быть указаны. Потому, что в скобках показано объявление, локальных внутри функции как блока (см. фиг. скобки), переменных. В них функция копирует передаваемые параметры. Независимо от того, значения это или адреса (указатели, ссылки). При копировании, производится преобразование типов, если требуется и возможно. То есть при передаче значения, функция работает с копией переданного значения, а при передаче указателя, - с копией указателя. Разница в том, что если в функции указатель разыменовывается, то несмотря на то, что указатель - копия, доступ получается к значению переменной на которую он указывает. Тогда если происходит изменения этого значения, то адресуемая указателем переменная изменится везде, где её видно и за пределами функции.
0
|
||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
||
| 14.09.2012, 17:25 | ||
|
В определении функции тоже можно не именовать аргументы. Естессно, к анонимному параметру тогда (гарантированно и переносимо) достучаться нельзя, но передавать хоть что-то при вызове функции надо. Банальный пример: префиксный и постфиксный инкременты. [/занудство]
0
|
||
| 14.09.2012, 18:26 | |||||||
0
|
|||||||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
||
| 14.09.2012, 18:56 | ||
|
0
|
||
|
Комп_Оратор)
|
|||||||||
| 14.09.2012, 19:26 | |||||||||
|
Вот, фрагмент вызвавший вопрос: ![]() Хотя вопрос бы мог и так звучать: Приоритет ++ выше чем у разадресации. То есть сначала передвинули указатель, а потом разадресовали? Думаю, - механическая ошибка. Имелось в виду:
1
|
|||||||||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||
| 14.09.2012, 19:34 | ||||||
|
Да, у постфиксного инкремента/декремента приоритет выше. Но тут можно запутаться, поэтому лучше всегда ставить скобки. Например при префиксном инкременте/декременте если знак операции стоит слева от знака разыменования, то сначала будет получен объект, и потом к нему будет применена операция инкремента.
1
|
||||||
|
Комп_Оратор)
|
||
| 14.09.2012, 19:44 | ||
0
|
||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||
| 14.09.2012, 19:48 | ||
|
IGPIGP, не ну это само собой. Я имел ввиду, что без скобок не инкрементировать значение, как это получается с префиксными.
1
|
||
|
Комп_Оратор)
|
||
| 14.09.2012, 20:02 | ||
0
|
||
|
2525 / 1751 / 152
Регистрация: 11.08.2012
Сообщений: 3,349
|
||||||||||||
| 16.09.2012, 11:36 | ||||||||||||
|
Не по теме: Во понаписали-то... Да, скобки забыли-с извиняюсь Добавлено через 5 минут
0
|
||||||||||||
| 16.09.2012, 11:36 | |
|
Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей
Как обойтись без указателей и указателей на указатель?
Будоражащее недопонимание цикла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|