|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov andron81у меня это работает :) Но у тебя первый параметр - не массив. да, не массив . но каким-то удивительным образом вот это массив: arr5 x; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 19:22 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov petravЯ ответил по сути и ответил правильно. Или эта тема — уже табу? Эта тема - флеймогенератор. Но если настаиваешь - пожалуйста, можешь дальше пытаться объяснять почему "typedef int[5] arr5; arr5 x;" не работает, раз уж массив это тип. Т.е. ты код написал не корректный, а я должен что-то доказывать на этом основании? Каким процентом от своей зарплаты ты готов делиться на регулярной основе за такое развлечение? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 19:30 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 petrav Тут "a" — это указатель на массив. В первом случае ты ему пытаешься присвоить указатель на первый элемент массива. Ну корректно ли это? ну а почему не корректно то ? ты же сам писал: В "a" содержится указатель на массив. По факту, в нём содержится указатель на первый элемент массива. Но по сути в нём содержится указатель на массив. итого имеем : 1) f это массив из 5 интовых элементов. в f(или в &f[0]) содержится адрес первого элемента. 2) переменная a указатель на массив из 5 элементов. и читаем что ты писал(а с этим я согласен) то есть по сути всё соблюдено наверно . а нет... Да ты пойми простую вещь. Есть тип. Неважно что это за тип: int, структура или массив. У тебя есть указатель на переменную этого типа. Понятно, что этот указатель по факту содержит указатель на первую переменную в этом типе. По факту! Но по сути он содержит указатель на этот тип. Точнее на переменную этого типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 19:38 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
petrav andron81 пропущено... ну а почему не корректно то ? ты же сам писал: В "a" содержится указатель на массив. По факту, в нём содержится указатель на первый элемент массива. Но по сути в нём содержится указатель на массив. итого имеем : 1) f это массив из 5 интовых элементов. в f(или в &f[0]) содержится адрес первого элемента. 2) переменная a указатель на массив из 5 элементов. и читаем что ты писал(а с этим я согласен) то есть по сути всё соблюдено наверно . а нет... Да ты пойми простую вещь. Есть тип. Неважно что это за тип: int, структура или массив. У тебя есть указатель на переменную этого типа. Понятно, что этот указатель по факту содержит указатель на первую переменную в этом типе. По факту! Но по сути он содержит указатель на этот тип. Точнее на переменную этого типа. есть разница по твоей теории между кодами ? Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2. 3.
первый код не рабочий, второй рабочий ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 19:53 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 petrav пропущено... Да ты пойми простую вещь. Есть тип. Неважно что это за тип: int, структура или массив. У тебя есть указатель на переменную этого типа. Понятно, что этот указатель по факту содержит указатель на первую переменную в этом типе. По факту! Но по сути он содержит указатель на этот тип. Точнее на переменную этого типа. есть разница по твоей теории между кодами ? Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2. 3.
первый код не рабочий, второй рабочий Тут-то что не понятно? Кури Кернигана-Ритчи снова. Представь себе, что у нас есть координаты истока Днепра. По факту это некий ручей, но по сути это начало реки. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 20:00 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
petrav andron81 пропущено... есть разница по твоей теории между кодами ? Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2. 3.
первый код не рабочий, второй рабочий Тут-то что не понятно? Кури Кернигана-Ритчи снова. Представь себе, что у нас есть координаты истока Днепра. По факту это некий ручей, но по сути это начало реки. Я и учу по нему. Не понятно почему первый код не катит. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 20:02 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov a guestКакая связь между тем, что массив это тип и тем, почему код (не) должен работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 20:39 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 то есть дело то может быть в синтаксисе . да, так нельзя : typedef int[5] arr5; а вот так можно : typedef int arr5[5]; то есть логичнее на мой взгляд вот наподобие как студенческом паскале : typedef int[5] arr5; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 20:42 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest andron81 то есть дело то может быть в синтаксисе . да, так нельзя : typedef int[5] arr5; а вот так можно : typedef int arr5[5]; то есть логичнее на мой взгляд вот наподобие как студенческом паскале : typedef int[5] arr5; Собственно Страуструп в какой-то своей книге и писал, что очень недоволен синтаксисом Си. И даже приводил примеры объявлений переменных, которые синтаксически корректны, но откомпилировать их невозможно. И про массивы он, кажется, как раз и писал что логичнее `int[5] arr5;`, но внедрить это невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 20:51 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest, Да, разумеется Но по каким-то причинам оформляется и тайпдеф и сама переменная как объявляется. И кстати тогда можно было бы с уверенностью сказать, что int[5] это тип. Поэтому я склончюсь больше к идеи Сибирякова. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 20:54 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
petrav Собственно Страуструп в какой-то своей книге и писал, что очень недоволен синтаксисом Си. И даже приводил примеры объявлений переменных, которые синтаксически корректны, но откомпилировать их невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 20:58 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 petrav, Верно ли я понимаю что грубо говоря в *var содержится адрес на первый элемент массива ? чтобы было понятнее, лучше представлять любую переменную, как ячейку памяти, где лежит некий байт a, b, data, var - всё это ячейки в памяти, которые нам (людям) проще читать словами, а компу конечно цифрой (адрес ячейки) а когда нам нужен адрес ячейки, то мы его получаем через &var, а доступ к данным через *var ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 21:29 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest petrav Собственно Страуструп в какой-то своей книге и писал, что очень недоволен синтаксисом Си. И даже приводил примеры объявлений переменных, которые синтаксически корректны, но откомпилировать их невозможно. Я точно не помню. Может я слегка перегнул палку, но Бьёрн приводил какие-то совершенно мозголомные примеры объявлений переменных... и там реально была жуткая путаница. И Страуструп как раз и писал, что хотел бы переделать систему типов Си, но не мог сделать этого. Кажется в книге "Дизайн и эволюция С++", но я точно не помню название. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 21:47 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
вот как это работает Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
и я еще раз повторю, что нужно различать указатель на массив от массива указателей ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 21:51 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
mini.weblabprintf("%4d ", *(*(a+i) +j) ); А по-хорошему-то тут должно было бы быть "(*a)[j]" и дальше простое a++... Это если бы а реально было указателем на массив из пяти целых чисел... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 22:11 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
верен любой из способов (поправила) Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 22:13 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
Но увеличит ли операция а++ значение а на sizeof(int[5])?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 22:24 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
mini.weblab вот как это работает Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
и я еще раз повторю, что нужно различать указатель на массив от массива указателей Понимаете , глупая логика моя следующая : int (*a)[5]; - это указатель на массив , содержащий "строку" из 5 целых чисел. int f[5] - это "строка" из 5 целых чисел. в башке четко отложилось, что f это указатель на первый элемент массива, а значит (возможно ошибочно), что это как раз и есть указатель на "строку" из 5 целых чисел. поэтому я думал , что a=f наверно безошибочно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 22:36 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
я думаю тут имеет смысл говорить о перемещениях Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 22:37 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 Понимаете , глупая логика моя следующая : int (*a)[5]; - это указатель на массив , содержащий "строку" из 5 целых чисел. int f[5] - это "строка" из 5 целых чисел. в башке четко отложилось, что f это указатель на первый элемент массива, а значит (возможно ошибочно), что это как раз и есть указатель на "строку" из 5 целых чисел. поэтому я думал , что a=f наверно безошибочно. если говорить об адресации, то логика норм, вы делаете ошибку в dereferencing (не знаю как перевести) поэтому я выписала правила ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 22:44 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
mini.weblab ... dereferencing (не знаю как перевести) это переводится - разыменование - снятие косвенности ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 23:00 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
mini.weblab вы делаете ошибку в dereferencing (не знаю как перевести) Разыменование. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 23:00 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
mini.weblab, поэтому я выписала правила а выписали правила где, простите ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 23:36 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
вот: mini.weblab верен любой из способов (поправила) Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 23:43 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
а тут petrav объясняет почему так происходит petrav Да ты пойми простую вещь. Есть тип. Неважно что это за тип: int, структура или массив. У тебя есть указатель на переменную этого типа. Понятно, что этот указатель по факту содержит указатель на первую переменную в этом типе. По факту! Но по сути он содержит указатель на этот тип. Точнее на переменную этого типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 02:46 |
|
|
start [/forum/topic.php?fid=57&msg=39969074&tid=2017398]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 148ms |
0 / 0 |