Форум программистов, компьютерный форум CyberForum.ru

Неясности в теории - C++

Восстановить пароль Регистрация
 
 
Benzema
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 58
11.10.2015, 19:55     Неясности в теории #1
Здравствуйте! Объясните пожалуйста почему в параметрах функции чаще всего используют указатель на массив, а не сам массив, например, void display(int *num).
И еще один вопрос, для чего нужен знак % в данной функции:rand()%1999-999. То, что это функция заполнения рандомными числами,я знаю, но вот для чего там знак % ?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2015, 19:55     Неясности в теории
Посмотрите здесь:

Подсчёт выражения. Разработка программы и неясности с функцией pow C++
C++ Вопросы по теории
Немного теории C++
C++ Вопросы по теории C++
Неясности в работе программы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rius
 Аватар для Rius
1763 / 1148 / 274
Регистрация: 25.05.2015
Сообщений: 4,075
Записей в блоге: 4
Завершенные тесты: 4
11.10.2015, 21:14     Неясности в теории #21
castaway, я уточнил вопрос в посте 19.
Если уж говорить о правилах хорошего тона, то и на ТЫ обращаться к незнакомым не принято. И оверквотить тоже.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
11.10.2015, 21:15     Неясности в теории #22
Цитата Сообщение от castaway Посмотреть сообщение
Давай без auto. Чтобы убедится в том, что именно указатель помнит размерности.
auto* не может быть ничем иным, кроме указателя.
здесь нечему убеждаться.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
template<class T, size_t N>
void view(const T (*p)[N])
{
    for(const auto& i: *p)
        std::cout<< i <<", ";
    std::cout<<'\n';
}
 
int main()
{
    std::cout << "Hello, world!\n";
    
    const int a[] {1,2,3};
    
    view (&a);
}
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
11.10.2015, 21:16     Неясности в теории #23
Цитата Сообщение от hoggy Посмотреть сообщение
то есть, вы не представляете себе как можно передать массив
не через указатель, и не указывая его размерность?
Я знаю как это сделать, но речь не об этом.
hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
11.10.2015, 21:17     Неясности в теории #24
Цитата Сообщение от Rius Посмотреть сообщение
оверквотить
простите, что означает слово "оверквотить" ?

гугл подсказал спросить у лурка, но лурк забаннен.
остальные найденные упоминания не содержат определений.
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
11.10.2015, 21:18     Неясности в теории #25
Цитата Сообщение от castaway Посмотреть сообщение
Давай без auto
А пусть с auto на clang попробует.

Это не по стандарту.
Auto как аргумент функции
Rius
11.10.2015, 21:19
  #26

Не по теме:

hoggy, много цитат
Вообще, вот так (в спойлере):

Кликните здесь для просмотра всего текста
1
2
3
4
5
6

hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
11.10.2015, 21:22     Неясности в теории #27
Цитата Сообщение от castaway Посмотреть сообщение
Я знаю как это сделать, но речь не об этом.
вы спросили как передать массив не через указатель,
вам были даны ответы с примерами-иллюстрациями.

вы заявили, что это не есть ответ на ваш вопрос.

тут одно из двух:
1.
вы задали не тот вопрос.
не смогли сформулировать свой вопрос правильно,
и получили ответ не тот вопрос, на который хотелось.

2.
вы просто гоните какую то пургу.
зная ваш скандальный характер и не способность признавать ошибки,
я не удивлюсь развитию второго варианта.
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
11.10.2015, 21:23     Неясности в теории #28
Цитата Сообщение от hoggy Посмотреть сообщение
auto* не может быть ничем иным, кроме указателя.
здесь нечему убеждаться.
Да что ж ты такой скользкий как понос... Читай с 3-го сообщения.

Цитата Сообщение от Rius Посмотреть сообщение
castaway, я уточнил вопрос в посте 19.
Если уж говорить о правилах хорошего тона, то и на ТЫ обращаться к незнакомым не принято. И оверквотить тоже.
Давай вернёмся к старым временам:
Цитата Сообщение от Benzema Посмотреть сообщение
почему в параметрах функции чаще всего используют указатель на массив, а не сам массив
Цитата Сообщение от Rius Посмотреть сообщение
Указатель это 32 или 64-битное число всего лишь. Передать его менее накладно, т.е. быстрее, чем все значения массива в 100500 элементов.
Первый случай я себе представляю. Ты можешь привести пример того, как выглядит второй?
hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
11.10.2015, 21:23     Неясности в теории #29
Цитата Сообщение от daslex Посмотреть сообщение
Это не по стандарту.
вы ошибаетесь.
см стандарт c++11y
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
11.10.2015, 21:30     Неясности в теории #30
Цитата Сообщение от hoggy Посмотреть сообщение
вы спросили как передать массив не через указатель,
вам были даны ответы с примерами-иллюстрациями.
вы заявили, что это не есть ответ на ваш вопрос.
тут одно из двух:
1.
вы задали не тот вопрос.
не смогли сформулировать свой вопрос правильно,
и получили ответ не тот вопрос, на который хотелось.
2.
вы просто гоните какую то пургу.
зная ваш скандальный характер и не способность признавать ошибки,
я не удивлюсь развитию второго варианта.
То же самое, но только с моими цитатами можно?

Добавлено через 4 минуты
hoggy, в твоём примере размерность помнит ссылка, а не указатель.
hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
11.10.2015, 21:33     Неясности в теории #31
Цитата Сообщение от castaway Посмотреть сообщение
То же самое, но только с моими цитатами можно?
пожалуйста.

#8
Цитата Сообщение от castaway Посмотреть сообщение
Обычно вместе с указателем на массив передают и его размер.
Как ты представляешь себе передачу массива (не указателя на него)?
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
11.10.2015, 21:34     Неясности в теории #32
Цитата Сообщение от hoggy Посмотреть сообщение
вы ошибаетесь.
см стандарт c++11y
Только работает не во всех компиляторах, поддерживающих последние и даже частично новые, хотя еще и не утвержденные стандарты. Да? (с++14, c++17)
форум режет ссылки..
hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
11.10.2015, 21:35     Неясности в теории #33
Цитата Сообщение от castaway Посмотреть сообщение
в твоём примере размерность помнит ссылка, а не указатель.
то есть, вы считаете, что в #22 передается ссылка?

C++
1
2
3
template<class T, size_t N>
void view(const T (*p)[N])  //<--- по вашему p - это ссылка?
{...}
Добавлено через 46 секунд
Цитата Сообщение от daslex Посмотреть сообщение
Только работает не во всех компиляторах
ну да, конечно.
c++11 работает не во всех компиляторах.
не говоря уже о последующих стандартах.
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
11.10.2015, 21:39     Неясности в теории #34
Clang C++11 полностью поддерживал еще в 2013, если сайты не врут.
hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
11.10.2015, 21:43     Неясности в теории #35
Цитата Сообщение от daslex Посмотреть сообщение
Clang C++11 полностью поддерживал еще в 2013, если сайты не врут.
auto в аргументах это c++11y
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
11.10.2015, 21:44     Неясности в теории #36
Цитата Сообщение от hoggy Посмотреть сообщение
пожалуйста.
#8
Этот вопрос был задан в конкретной ситуации для конкретного пользователя при конкретных обстоятельствах. Если ты его не понял, то и не следовало отвечать на него. Вместо этого ты перешёл в другую "плоскость" и начал доказывать своё.

Ты лучше ответь каким образом указатель (не ссылка!) хранит размер массива.
Цитата Сообщение от hoggy Посмотреть сообщение
не обязательно передавать именно указатель на массив.
и совсем не обязательно передавать размер массива.
(указатель на массив так же, как и ссылка на массив помнит размерности)
Добавлено через 1 минуту
Цитата Сообщение от hoggy Посмотреть сообщение
то есть, вы считаете, что в #22 передается ссылка?
Поправлю себя, размер помнит шаблон.
hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
11.10.2015, 21:46     Неясности в теории #37
Цитата Сообщение от castaway Посмотреть сообщение
и начал доказывать своё.
вы ошибаетесь.
я никому ничего не доказываю.
кстати, то, о чем я вещаю - это банальности.
хорошо знакомые любому, кто мало-мальски умеет с++.

Цитата Сообщение от castaway Посмотреть сообщение
ы лучше ответь каким образом указатель (не ссылка!) хранит размер массива.
сообщение #22 для кого было оставленно?

Добавлено через 1 минуту
Цитата Сообщение от castaway Посмотреть сообщение
Поправлю себя, размер помнит шаблон.
нет, не шаблон.
а указатель на массив.

хотите, что бы я переписал этот код без использования шаблонов?
или может быть сами догадаетесь, как его переписать без шаблонов?
daslex
11.10.2015, 21:50
  #38

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
c++11y
Что это за стандарт такой?. Я как в гугл не вбиваю, он мне ничего не дает.

hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
11.10.2015, 21:52     Неясности в теории #39
Цитата Сообщение от daslex Посмотреть сообщение
Что это за стандарт такой?
так обозначается стандарт новее, чем с++11.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2015, 21:53     Неясности в теории
Еще ссылки по теме:

Некоторые неясности с задачей C++
Некоторые неясности с задачей C++
непонятность по теории C++

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4846 / 2985 / 368
Регистрация: 10.11.2010
Сообщений: 11,026
Записей в блоге: 10
Завершенные тесты: 1
11.10.2015, 21:53     Неясности в теории #40
Цитата Сообщение от hoggy Посмотреть сообщение
хотите, что бы я переписал этот код без использования шаблонов?
Хочу.
Yandex
Объявления
11.10.2015, 21:53     Неясности в теории
Ответ Создать тему
Опции темы

Текущее время: 04:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru