|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#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.
и я еще раз повторю, что нужно различать указатель на массив от массива указателей Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 10:09 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
mini.weblab а тут petrav объясняет почему так происходит petrav Да ты пойми простую вещь. Есть тип. Неважно что это за тип: int, структура или массив. У тебя есть указатель на переменную этого типа. Понятно, что этот указатель по факту содержит указатель на первую переменную в этом типе. По факту! Но по сути он содержит указатель на этот тип. Точнее на переменную этого типа. мне сложно понять простую вещь. смотрите разбираем, что написал этот товарищ, (пишу его перефразированные цитаты жирным) : пусть все же массив это тип. в чем у меня сомнения ну да ладно. пусть тип. у меня есть указатель на переменную этого типа. ок. съели. этот указатель по факту содержит указатель на первую переменную в этом типе вот это я с трудом, но понял. видимо имелось ввиду , что этот указатель на первый элемент массива. но в то же время он является и указателем на int и это понято . ведь массив это по сути совокупность переменных хранящихся рядом в памяти (благодаря этому доступна арифметика указателей) так а где тут объяснение , что это не работает ? Код: plaintext 1. 2. 3. 4.
здесь a это указатель на int ? указатель ! а f указатель на int , тоже указатель почему не прокатывает это: a = f; ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 10:14 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 мне сложно понять простую вещь. Бывает. andron81 Код: plaintext 1. 2. 3. 4.
здесь a это указатель на int ? указатель ! а f указатель на int , тоже указатель почему не прокатывает это: a = f; Здесь "a" — это указатель на массив. А "f" — это массив. А не прокатывает потому что вы указателю на массив пытаетесь присвоить массив. Переменная типа массив может неявно привестись только к указателю на элемент массива и всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 10:21 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
petrav Переменная типа массив может неявно привестись только к указателю на элемент массива и всё. вот ! здесь нет это преобразования : a = f; ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 10:39 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 petrav Переменная типа массив может неявно привестись только к указателю на элемент массива и всё. вот ! здесь нет это преобразования : a = f; ??? Нет. Потому что `a` — это указатель на массив, а не на элемент этого массива. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 10:56 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81, посмотри пример под спойлером в этом сообщении 22136952 . Возможно станет чуточку понятней. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 11:14 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
petrav andron81 пропущено... вот ! здесь нет это преобразования : a = f; ??? Нет. Потому что `a` — это указатель на массив, а не на элемент этого массива. блин, да о каком элементе . о чем вы ? или я тупой или вы себе противоречите : вот же вы писали : Есть тип. Неважно что это за тип: int, структура или массив. У тебя есть указатель на переменную этого типа. Понятно, что этот указатель по факту содержит указатель на первую переменную в этом типе. По факту! Но по сути он содержит указатель на этот тип. Точнее на переменную этого типа. укзатель на массив и указатель на первый элемент массива это разные вещи ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 11:20 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81, Я имел ввиду, что указатель на массив содержит адрес первого элемента массива, в числовом виде. Просто номер ячейки памяти. Но с точки зрения системы типов указатель на массив — это не адрес первого элемента массива. Так же массив — это тоже не адрес первого элемента массива. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 11:26 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 так а где тут объяснение , что это не работает ? Код: plaintext 1. 2. 3. 4.
дело в том, что вы не хотите воспринимать определения! Определения: указатель на массив - это указатель на массив, и он указывает на массив указатель на целое число - это указатель на целое число, и он указывает на целое число вместо того, чтобы просто взять и использовать определение, вы начинаете придумывать что-то свое: здесь a это указатель на int ? указатель ! а f указатель на int , тоже указатель почему не прокатывает это: a = f; нет не верно! a - по определению, указатель на массив из целых чисел f - по определению, указатель на целое число вот поэтому и не прокатывает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 12:43 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest Вопрос на засыпку. А так можно?: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
1) нет нельзя, но это личное мнение и с ним можно не соглашатся :-) в данном случае код написан некорректно, и вводит в заблуждение тех, кто будет читать/разбирать этот код. 2) в gcc все прекрасно откомпилируется и будут получены те же результаты в данном случае я с gcc не согласна, но принимаю точку зрения разработчиков gcc ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 12:58 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
OFF: Особенно злая шутка товарищей Кернигана и Риччи состоит в том, что выражение arr[i,j] компилируется без ошибок и даже предупреждений, но, конечно же, не работает так, как ожидает человек, видевший синтаксис Бейсика или Паскаля. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:10 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
mini.weblab a guest Вопрос на засыпку. А так можно?: ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:13 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
mini.weblab a - по определению, указатель на массив из целых чисел f - по определению, указатель на целое число вот поэтому и не прокатывает в общем ещё раз пролистал тему адресная арифметика. нету там такого прикола как указатель на массив. это определение вводится позже. то есть f это указатель на какой-либо элемент массива(например на первый) ну и соответственно указатель на целое число. Из чего делаю вывод , что указатель на массив и указатель на первый (или n-ый элемент) это разные понятия. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:16 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 Из чего делаю вывод , что указатель на массив и указатель на первый (или n-ый элемент) это разные понятия. И если ты посмотрел пример под спойлером в этом 22136952 комментарии, то должен был понять чем они отличаются, но фактически, указатель на массив и указатель на первый элемент массива, хоть и имеют разные типы, будут содержать один и тот же адрес, а следовательно, возможно явное приведение одного к другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:27 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
mini.weblab вместо того, чтобы просто взять и использовать определение, вы начинаете придумывать что-то свое: здесь a это указатель на int ? указатель ! а f указатель на int , тоже указатель почему не прокатывает это: a = f; нет не верно! a - по определению, указатель на массив из целых чисел f - по определению, указатель на целое числонет не верно! a — указатель на массив, а f это выражение, обозначающее массив. Которое преобразуется к указателю на первый элемент обознчаемого массива. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:28 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
rdb_dev указатель на массив и указатель на первый элемент массива, хоть и имеют разные типы, будут содержать один и тот же адрес Возможно, зря я про такое рассказываю. Сейчас понабегут 1C-ники, дельфисты и прочие программисты на HTML и начнётся такой хай... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:31 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest, и "a" и "f" являются выражениями. Выражение "a" (lvalue) будет расценено как указатель на массив, а выражение "f" (prvalue) будет расценено как ссылка на массив. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:34 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
andron81 mini.weblab a - по определению, указатель на массив из целых чисел f - по определению, указатель на целое число вот поэтому и не прокатывает в общем ещё раз пролистал тему адресная арифметика. нету там такого прикола как указатель на массив. это определение вводится позже. то есть f это указатель на какой-либо элемент массива(например на первый) ну и соответственно указатель на целое число. Из чего делаю вывод , что указатель на массив и указатель на первый (или n-ый элемент) это разные понятия. Забей, это тебе не нужно, учи Питон. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:35 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest mini.weblabнет не верно! a - по определению, указатель на массив из целых чисел f - по определению, указатель на целое число нет не верно! a — указатель на массив, а f это выражение, обозначающее массив. Которое преобразуется к указателю на первый элемент обознчаемого массива. в строке кода a = f f - это указатель на целое число ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:38 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest В цепепе это, кстати, не гарантируется. Читай раздел "The C++ object model" до просветления. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:39 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
rdb_dev Выражение "a" (lvalue) будет расценено rdb_dev "f" (prvalue) будет расценено как ссылка на массив. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:41 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest, мне нет резона в который раз вступать в полемику с тем, что читает стандарт С++ исключительно по диагонали. Просто оставлю тут пару ссылок: 1. 22136626 2. 6.10 Lvalues and rvalues ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:53 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
rdb_dev a guest, мне нет резона в который раз вступать в полемику с тем, что читает стандарт С++ исключительно по диагонали. Просто оставлю тут пару ссылок: 1. 22136626 2. 6.10 Lvalues and rvalues ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:59 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest Я не про мнение спрашивал, а определено ли поведение с точки зрения стандарта. Пардон, если сразу было не ясно. нет не ясно: 1) если вам интересно, что написано в стандарте, то нужно прочитать, что там написано 2) если вам интересно, что я думаю, то нужно спросить у меня ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 14:06 |
|
указатель на массив. что это такое ?
|
|||
---|---|---|---|
#18+
a guest, может ты не по англицки вообще не понимаешь или же просто не способен собрать единое представление из нескольких частей определения? - A glvalue is an expression whose evaluation determines the identity of an object, bit-field, or function. ... - An lvalue is a glvalue that is not an xvalue. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 14:12 |
|
|
start [/forum/topic.php?fid=57&msg=39969307&tid=2017398]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 146ms |
0 / 0 |