|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
Что такое указатель на массив?18.02.2020, 15:28. Показов 7342. Ответов 108
Метки нет (Все метки)
0
|
|
| 18.02.2020, 15:28 | |
|
Ответы с готовыми решениями:
108
Что такое хэндлер файла? Что такое файловый указатель?
Что такое указатель на член класса? |
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||||||||||||||
| 18.02.2020, 22:17 | ||||||||||||||||
|
ReYalp, считайте для простоты, что скобки задают приоритет того, как интерпретировать запись. Если звездочка в скобках, то она относится ко всему тому, что снаружи этих скобок.
1
|
||||||||||||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
||||||
| 18.02.2020, 22:48 [ТС] | ||||||
|
DrOffset, а зачем вообще придумали указатели на массивы если есть указатели на его первый элемент? ведь по сути это же абсолютно одинаковые указатели( кроме случаев если указатель на первый элемент массива сдвинули). Если создать указатели и сразу инициализировать его
0
|
||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 18.02.2020, 22:58 | |
|
ReYalp, вы должны внимательно прочитать то, что уже было написано ранее. Мы это уже обсуждали.
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 18.02.2020, 23:00 [ТС] | |
|
DrOffset, но мы же обсуждали [] с размером, а не мотивы создания указателей
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||
| 18.02.2020, 23:16 | |||||||
|
ReYalp,
Ключевое слово любой. Т.е. нет никакого специального лишнего синтаксиса, синтаксис один для любых объектов. Добавлено через 1 минуту У объекта можно взять адрес. И тип указателя должен отражать тип указуемого объекта. Если объект у нас - массив, значит тип этого массива должен быть частью типа указателя. Это общее правило. Добавлено через 4 минуты Также есть ситуации, когда вы не сможете обойтись без указателей на массивы, иначе не получится обеспечить корректную арифметику адресов. Возьмем двумерный массив.
К типу какого указателя приводится выражение a неявно?Как используя арифметику указателей, перейти от первого элемента ко второму? Почему в типе указателя должна содержаться информация о типе указуемого объекта, чтобы арифметика указателей работала? Ответите на эти вопросы, ваши отпадут сами.
1
|
|||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|||||
| 18.02.2020, 23:41 [ТС] | |||||
|
DrOffset,
0
|
|||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||
| 18.02.2020, 23:47 | |||||
а - 20 массивов из 10 int.
0
|
|||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 18.02.2020, 23:52 [ТС] | |
|
DrOffset, DrOffset, чёт я не понял, a[10][20] это 10 массивов из 20 объектов или наоборот?
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||||
| 18.02.2020, 23:57 | ||||||
|
Писал с своего примера, а потом когда вспомнил\увидел, что до этого давал пример наоборот, уже не успел исправить. Добавлено через 1 минуту Т.е.
0
|
||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 18.02.2020, 23:57 [ТС] | |
|
DrOffset, Тоесть я все верно описал выше?
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|
| 18.02.2020, 23:58 | |
|
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 00:06 [ТС] | |
|
DrOffset, но я все же правильно описал кроме первого, насчёт указателя на int - я исправил на массив int, с самого начала имел это ввиду, а вот первое не совсем понятно, как может быть сам массив, а не указатель на него либо первый элемент?
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||||||||||||
| 19.02.2020, 00:20 | |||||||||||||||||
|
double, например, тоже объектный тип. Вы же можете сделать массив из double`ов? Значит и массив из других массивов сможете. Чем он хуже? Вопрос лишь в том, насколько сдвигать указатель. Замените конкретный тип на T. Запишите
Можете теперь перед ним объявить T как typedef double.
Теперь возьмите и поменяйте T на double[20];
T - это что теперь? Массив же, правда ведь?
0
|
|||||||||||||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 00:27 [ТС] | |
|
DrOffset, ну да, выходит что если есть int arr[10][20] то первый элемент внешнего (arr[0] это первый массив из 20), согласен, но каким образом я должен был понять зачем нам нужны указатели на массивы? )
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||||||||||
| 19.02.2020, 00:32 | ||||||||||||
|
Вот у нас есть пример выше.
Что мы делаем?
Какой тип у p? На сколько байт двигает операция + 1 адрес?
0
|
||||||||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 00:34 [ТС] | |
|
DrOffset, у р тип указатель на массив типа double , операция ++ двигает на количество байт равное szieof(double) * количество элементов массива на который указатель указывает
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||||||
| 19.02.2020, 00:44 | |||||||||||
|
ReYalp, ну вот.
Операция индексации всегда содержит адресную арифметику, потому что
arr + 1 даст double(*)[20] *(arr + 1) даст double[20] *(arr + 1) + 2 даст double * *(*(arr + 1) + 2) даст double,
2
|
|||||||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 19.02.2020, 00:50 [ТС] | |
|
DrOffset, кстати в книге Липпмана сказано что массивов двумерный не существует в С++, есть только массивы массивов
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 19.02.2020, 00:50 | |
|
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 19.02.2020, 00:52 | |||
|
Добавлено через 1 минуту Этот размер в данном случае - это sizeof(double[20]) или, как сказал, ТС - sizeof(double) * 20
1
|
|||
| 19.02.2020, 00:52 | |
|
Указатель на ссылку или что это такое? Что такое указатель и с чем его есть
Что такое указатель? Что быстрее использовать, массив э-в, или указатель на массив э-в? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
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(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|