Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Код: plaintext 1. Тут идет речь про такое: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 06:15 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЕсли я не ошибаюсь, то K&R пишут что указатели в частности предназначены для возврата нескольких значений из функции. Старница 98. Строчки 1-2. K&RУказатели в качестве аргументов обычно используются в функциях, которые должны возвращать более одного значения. Да, если хочется вернуть более одного значения из функции, можно воспользоваться указателями. Например деление с остатком: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 06:27 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
ребята, это не возврат из функции чего-то. Это - модификация параметров, переданных по ссылке. давайте не будем путать понятия, даже если у Кернигана так написано. В С вообще нельзя вернуть из функции несколько значений. одно или 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 08:02 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
MasterZiv давайте не будем путать понятия, даже если у Кернигана так написано. Простите, но если именовать книгу одной фамилией, то скорее :"если у Ритчи так написано", авторство языка принадлежит ему(и Кену Томпсону ). Может быть Вы хотели сказать что в определение слова "возврат из функции" авторы вложили более широкий смысл ? И что мы понимаем под возвратом значений из функции ? Я не знаю чёткого определения. f e: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Вы бы сделали аналогичные комментарии к этим двум функциям ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 08:37 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
SashaMercury Код: plaintext 1. 2. 3. 4. 5. 6. естественно функция smth_func_2 не возвращает значение, ведь тип возвращаемого значения у неё void . Другое дело, что она модифицирует свой входной параметр. Это называется побочным эффектом , а не возвращением значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 09:55 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
Я бы назвал это косвенный возврат значений, или ссылочный возврат значений. Нужно подумать, как лучше. В широком смысле этого слова функция возвращает значения, но неявно. Где первоисточник этого словосочетания "побочный эффект" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 10:04 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
Господа, опомнитесь, начали за C++, а кончаете за Ричи. Охота вернуть несколько значений - см. std::tuple tie make_tuple, правда в коде это все равно выродится скорее всего в заполнение функцией буфера по переданному ей адресу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 10:24 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
SashaMercury. Где первоисточник этого словосочетания "побочный эффект" ? там где определяется "чистая функция" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 10:48 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЯ бы назвал это косвенный возврат значений, или ссылочный возврат значений. Нужно подумать, как лучше. В широком смысле этого слова функция возвращает значения, но неявно. Где первоисточник этого словосочетания "побочный эффект" ? Функция --она на то и функция, чтобы возвращать. Вотэто она и возвращает. Явно. А всё остальное -- это побочные эффекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:25 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
SashaMercuryMasterZiv давайте не будем путать понятия, даже если у Кернигана так написано. Простите, но если именовать книгу одной фамилией, то скорее :"если у Ритчи так написано", авторство языка принадлежит ему(и Кену Томпсону ). Может быть Вы хотели сказать что в определение слова "возврат из функции" авторы вложили более широкий смысл ? И что мы понимаем под возвратом значений из функции ? Я не знаю чёткого определения. f e: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Вы бы сделали аналогичные комментарии к этим двум функциям ? Да. Первая -- возвращает, вторая -- нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:27 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
SashaMercuryГде первоисточник этого словосочетания "побочный эффект" ?Я ссылку дал, чукча не-читатель? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:43 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
SashaMercury не вырывайте из контекста, пожалуйста. я написал: SВообще, насколько я понял, объявление массива, например: int a[10] значит, что вы объявили int* a(K&R пишут что имя массива является указательным выражением-страница 100), и это указательное выражение, хранит в себе адрес начала массива, и далее мы говорим, что одно значение будет занимать 4 байта(в зависимости от архитектуры), и гарантировано таких значений будет 10(впрочем с этим я не уверен, может он их все будет индексировать и считывать значения с 4 байт). Про гарантированных 40 байт я написал. Вот ведь блин... Вырываю я... Ничего я не вырываю, вот весь этот абзац и является полным бредом. "имя массива является указательным выражением" --- имя массива в виде выражения, а не выражение объявления переменной типа массива. Разницу чувствуешь ? Это два разных совсем выражения. Код: plaintext 1. объявляет массив из 10 элементов типа int, с именем 'a'. Это значит: выделяется 10*sizeof(int) последовательно идущих байт в области памяти, соответствующей данному классу памяти. в соответствующий словарь имён заносится имя 'a' в памать размещается значение согласно инициализатору (тут инициализатора нет, поэтому зависит от класса памяти) Код: plaintext 1. объявляет указатель на int, с именем 'b'. Это значит: выделяется sizeof(int*) - 4 или 8 байт. в соответствующий словарь имён заносится имя 'b' в указатель заносится адрес первого элемента массива 'a' И вот только тут (!!) срабатывает то самое, о чём ты пытался нам донести -- компилятор видит выражение, содержащее символ названия массива и преобразует это выражение в указатель на первый элемент этого массива. Еще раз, боле у указателей и массивов нет ничего общего. (А, не, ещё есть дурацкая нотация параметров функций-указателей в виде массива без указанной размерности, с которой начался топик, об этом -- отдельно). SashaMercuryMasterZivпропущено... это только кажется. а когда кажется, надо креститься, тогда нечисть сгинет... А разве не вымышленное ? Абстракция, накрученная. В K&R до 102 страницы я не встретил чёткого определения массива, и возможно это неопределяемое понятие в C, как и понятие множества в математике. Не буду приводить ссылки на функан, википедии вам хватит link_for_MasterZiv и, ВЫ снова вырываете из контекста.Вы разорвали мою фразу я написал, SПотому, как мне кажется, массив это такое вымышленное понятие, несколько искусственное, вообще ошибка, если кто-то говорит о них, без указателей, нужно начинать объяснение с указателей, и как частный случай их использования рассказывать про массивы Хочется ответить словами "поэта": "Ты суслика не видишь ? А суслик есть!" Так и тут. А определение массива я думаю ты легко найдёшь в стандарте языка (С, С++). SashaMercuryОдно из трёх утверждений вам понравилось ?Уже неплохо. не одно и то же. Указатель понятие фундаментальное в фон-неймановской архитектуре, а массив абстракция Указатель и массив -- в данном случае понятия языка программирования . В архитектуре есть адреса памяти и слова и байты памяти. И далеко не во всех языках программирования есть указатели и ссылки. Да и массивы тоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 11:46 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
MasterZivВообще, насколько я понял, объявление массива, например: Код: plaintext 1. значит, что вы объявили int* a че за бред? int* 4 байта, int [10] - 40. есть разница? Код: plaintext 1. значит, что вы объявили int* a Код: plaintext 1. Только память будет выделена возможно по разному ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 12:28 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
MasterZivИ далеко не во всех языках программирования есть указатели и ссылки. Да и массивы тоже Язык Элочки Людоедки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 12:31 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
Macks Код: plaintext 1. значит, что вы объявили int* a Код: plaintext 1. нет, не значит. Это разные конструкции. В том числе и потому, что память ОБЯЗАТЕЛЬНО будет выделена по разному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 14:00 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
MacksMasterZivВообще, насколько я понял, объявление массива, например: Код: plaintext 1. значит, что вы объявили int* a че за бред? int* 4 байта, int [10] - 40. есть разница? Код: plaintext 1. значит, что вы объявили int* a Код: plaintext 1. Только память будет выделена возможно по разному О, ещё один ... Ладно, переубеждать не буду, живите, до первого собеседования... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 14:11 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
MasterZivдо первого собеседования... там мож про деструкторы расскажут.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 14:47 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
egorych, вам нужно быть несколько более уравновешенным. если у вас какие-то проблемы в личной жизни, или на работе, не стоит своё чёрное настроение переводить сюда. +Изопропил первоисточник я встретил сегодня в K&R, старница 56, глава 2.12 Старшинство и порядок вычислений. Администраторы форума, я прошу вас обратить внимание на хамство egorych, его не стоит банить конечно, но обратить внимание, мне кажется, стоит Модератор: Обратили, обратили, не беспокойся. Лучше бы ты сам на него меньше внимания обращал. egorychЯ ссылку дал, чукча не-читатель? ваша ссылка не первоисточник. И описания в K&R и на том сайте различны, я больше доверяю K&R. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 05:00 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
egorychестественно функция smth_func_2 не возвращает значение, ведь тип возвращаемого значения у неё void . Другое дело, что она модифицирует свой входной параметр. Это называется побочным эффектом , а не возвращением значения. MasterZivФункция --она на то и функция, чтобы возвращать. Вотэто она и возвращает. Явно. А всё остальное -- это побочные эффекты. Вот вы докопались. Вы не видите что-ли разницу между алгоритмом и реализацией на языке программирования? Если я напишу программу которая выводит на экран картинку, то в языке С/С++ она тоже не выводит картинку, а вызывает функции, присваивает, читает переменные и т.д. Нету вывода картинок в С. Но если подняться на более высокий уровень, то все это вместе реализует алгоритм "вывод картинки". В исходной цитате К/Р речь идет о возврате нескольких значений алгоритмом, а не о возврате значений как синтаксической конструкции С. И о том, что на С, такой возврат обычно реализован через модификацию значений через аргументы-указатели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 05:44 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
MasterZiv, я думаю что в данном случае вы правы. Но первоначально мне так не казалось. а по поводу побочного эффекта, не вижу смысла продолжать дискуссию. Мне понравилось слово "явно", значит моя мысль хотя бы немного, но имеет право на жизнь. И действительно, возможно у нас несколько разная грань между алгоритмом и программным кодом, в связи с этим разное понимание общих вопросов. Я стал понимать больше и шире, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 07:34 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВот вы докопались.я то думал, он разобраться хочет, а он, видишь ли, ябеда оказался )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 09:32 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
White OwlИ обязательно прочти Таненбаума!Абсолютно согласен. Уже официально признано классикой ИТ. Кстати, его книги свободно гуляют по Сети, так что их абсолютно без проблем можно найти и скачать совершенно бесплатно на множестве серверов. (Не сочтите за труд – поищите сами.) Если будут предлагать заплатить деньги или ввести номер телефона для скачивания – не соглашайтесь, ищите бесплатный ресурс с книгами, каковых есть множество. Если для проверки, что вы не робот, потребуется ввести ответ на какой-нибудь простой вопрос – это можно сделать, это совершенно бесплатно и совсем не трудно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 11:27 |
|
||
|
Передача массивов в функции
|
|||
|---|---|---|---|
|
#18+
Виноват, предыдущее сообщение не в той ветке опубликовал. Но, поскольку сообщение общего характера, а автор обеих веток один и тот же человек – думаю, он поймёт, к чему это. Другие товарищи, думаю, тоже сообразят – грамотные же люди… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 11:39 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38541791&tid=2019725]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
87ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 353ms |
| total: | 540ms |

| 0 / 0 |
