Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
6 / 8 / 8
Регистрация: 06.10.2017
Сообщений: 269

Зачем нужен динамическому массиву указатель?

09.04.2018, 01:07. Показов 4982. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1) Зачем когда обьявляем массив нужен указатель?
2) почему если массив передаётся в функцию нужен тоже указатель а не например int a;
3)почему когда массив передаётся элементы отдельно и количество отдельно а не например int *a[n];


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
void Odds(int *a, int n, int i) {
    if (i < n) {
        if (a[i] % 2 != 0)
            std::cout << a[i] << " ";
        Odds(a, n, i + 1);
    }
}
 
int main()
{
    int n; std::cin >> n;
    int *a = new int[n];
    for (int i = 0; i < n; i++) std::cin >> a[i];
    Odds(a, n, 0);
    delete[] a;
    system("pause");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2018, 01:07
Ответы с готовыми решениями:

Нужен урок по одномерном и двумерному динамическому массиву
Нужен урок по одномерном и двумерному динамическому массиву

Зачем нужен указатель на указатель при работе с однонаправленным списком?
День добрый. Столкнулся с непониманием этой темы. В частности, совершенно непонятен алгоритм инициализации такого вот списка. Например:...

Доступ к динамическому массиву
Первый раз столкнулся с такой фигней. Что происходит? #include &lt;iostream&gt; using namespace std; int main(int argc, char...

32
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
10.04.2018, 18:52
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от rat0r Посмотреть сообщение
Главное помнить, что только для указателей, но не для массивов.
я правильно понял, что запись типа
C++
1
2
int b[5];
*(b+2)=3;
не правильная?
0
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
10.04.2018, 18:54
nd2, в стандарт посмотри.

ValeryS, откуда я знаю, правильная или нет. Если хотели во второй элемент, а записали в третий — то не правильная.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,428
10.04.2018, 18:55
Цитата Сообщение от rat0r Посмотреть сообщение
в стандарт посмотри.
Смысла нет. Имя массива может неявно преобразовываться в указатель на первый элемент, что и происходит в данном случае.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
10.04.2018, 18:57
Цитата Сообщение от rat0r Посмотреть сообщение
в стандарт посмотри
ткни пальцем в стандарт будь добр
0
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
10.04.2018, 18:58
Цитата Сообщение от nd2 Посмотреть сообщение
Имя массива может неявно преобразовываться в указатель на первый элемент, что и происходит в данном случае.
А если имени нет?

_stanislav, http://eel.is/c++draft/
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
10.04.2018, 18:58
Цитата Сообщение от rat0r Посмотреть сообщение
Если хотели во второй элемент, а записали в третий
и хотели в третий, если считать элемент с индексом 0 первым,
ибо
Цитата Сообщение от nd2 Посмотреть сообщение
b[2] равнозначно *(b + 2)
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,428
10.04.2018, 18:59
Цитата Сообщение от rat0r Посмотреть сообщение
А если имени нет?
Здесь имени нет?
Цитата Сообщение от rat0r Посмотреть сообщение
C++
1
b[2] равнозначно *(b + 2)
Есть массивы без имени?
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
10.04.2018, 19:03
Цитата Сообщение от rat0r Посмотреть сообщение
А если имени нет?
это как нужно объявить массив чтобы у него не было имени?

Добавлено через 3 минуты
Цитата Сообщение от rat0r Посмотреть сообщение
читаем
7 Standard conversions [conv]
7.2 Array-to-pointer conversion [conv.array]

An lvalue or rvalue of type “array of N T” or “array of unknown bound of T” can be converted to a prvalue of type “pointer to T”. The temporary materialization conversion is applied. The result is a pointer to the first element of the array.
гугл переводчик
Lvalue или rvalue типа «массив N T» или «массив неизвестной границы T» можно преобразовать в prvalue типа «указатель на T». Применяется временное преобразование материализации. Результатом является указатель на первый элемент массива.
(выделено мной)
0
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
10.04.2018, 19:11
Цитата Сообщение от nd2 Посмотреть сообщение
Здесь имени нет?
Если b не имя (id-expression), а произвольное выражение — то эквивалентности нет. Если ограничиться только именованными массивами, то, наверное, эквивалентно.
Цитата Сообщение от nd2 Посмотреть сообщение
Есть массивы без имени?
Мгм.
0
10.04.2018, 19:13

Не по теме:

видится мне что очередной спор ни о чем затевается. :bravo:

0
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
10.04.2018, 19:19
Цитата Сообщение от ValeryS Посмотреть сообщение
читаем
7 Standard conversions [conv]
Это не единственный раздел, описывающий поведение E1[E2] и *((E1)+(E2)).
0
nd2
10.04.2018, 19:25

Не по теме:

Цитата Сообщение от _stanislav Посмотреть сообщение
видится мне что очередной спор ни о чем затевается.
Пора сваливать с темы...:)

0
10.04.2018, 19:28

Не по теме:

Цитата Сообщение от nd2 Посмотреть сообщение
Пора сваливать с темы...
модер по ходу уже свалил:)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.04.2018, 19:28

Поиск по динамическому массиву
Задан целочисленный двумерный массив a из n строк и m столбцов. Найти номер последнего максимального значения среди нечетных (по значению)...

Переход от статического к динамическому массиву
Есть некая структура some_struct. Необходимо перейти от статического массива этих структур some_struct *Table; к динамическому ...

Добавление памяти динамическому массиву
пытаюсь доканать динамические массивы (vector не предлагать, с ним все ок). суть задачи. есть массив структур, возникает необходимость...

Добавить столбец к двумерному динамическому массиву
Вот код. В функции AddRows пытался реализовать, но не выходит #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Создать функцию, добавляющую столбец двухмерному динамическому массиву
Доброго времени суток, уважаемые форумчане! Помогите, пожалуйста, разобраться как написать функцию, удаляющую столбец двумерному...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru