|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
Я прочитал в Стандарте C++17 что значениями указателя является то, что написано в скрине в 22003393 . Однако, меня почему-то убеждали, что значение указателя это число. Есть какое-нибудь доказательство этому утверждению? Сразу предупреждаю: кривые аналогии, печать printf-ом в консолечку (или файл) и т.п. доказательством не являются. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 08:00 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
Указатель это адрес в памяти где расположено то, на что он указывает. Память адресуется номерами ячеек (целое число от 0 до 2 32 или 2 64 ), поэтому указатель - число. Ну это не так на самом деле... Пойди попрограммируй в DOS. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 08:43 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
Z axis, Вам уже пытались объяснять в топике на который Вы ссылаетесь. Вы не верите, пытаясь трактовать по своему постулаты от C++. Давайте про истину. Открою большой секрет - в компьютере типов нет. От слова совсем. Это термин только из области языка, которым человек пытается формализовать бизнес задачу таким образом чтоб писанины было меньше а профитов больше. В частности язык C++. На самом деле, на уровне железа, есть понимание ячейки памяти и её адрес. Ячейка содержит 8 разрядов (да-нет) и называется байтом. Адрес, для простоты душевной, принято использовать линейно. Предположим у Вас 100 байт памяти, и в пятой ячейке лежит значение 200. Тогда 5 = это адрес ячейки, в которой лежит 200. Вот адреса ячеек и принято называть указателями. Но не всегда указатели являются адресами на память... Например у Вас 100 байт, значит ли это, что указатель не может быть более 99? Формально да, в жизни он может быть и 700000. Окейно. У нас 100 ячеек памяти, в 5 ячейке лежит 200. Мы взяли и изменили 200 на 66. Изменился ли адрес ячейки 5? Нет, он таким и остался. Изменилось ли значение этой ячейки? Да, с 200 на 66. Что в том, что написано выше Вам не понятно? (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 09:52 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
kolobok0Вам уже пытались объяснять в топике на который Вы ссылаетесь. Вы не верите, пытаясь трактовать по своему постулаты от C++.Почему Вы решили что трактую по-своему я, а не мои оппоненты? kolobok0Открою большой секрет - в компьютере типов нет. От слова совсем. Это термин только из области языкаО, то есть Вы согласны, что приводить описание компьютера при объяснении чего-то из области языка некорректно? Что при рассуждении о чём-то из области языка нужно оставаться только в области языка (стандарт там или ещё какая спецификация)? kolobok0Что в том, что написано выше Вам не понятно?Какое это имеет отношение к C++. Ни одной ссылки/цитаты на/из стандарт(а)... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:09 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
Z axis, Вы же ратовали за истину. Я Вам и рассказал как оно на самом деле происходит внутри компьютера. Если Вам это не понятно - то лезть выше имхо глупо... ссылок полно, хотя возможно сегодня первый день чибурнета - могли в гугле и забанить конечно же Вас... помойму это сейчас разжовывать должны в школе..типо информатика и иже... к языку, т.к. он искусственен, можно прийти в любой момент. хоть к азму, хоть к сям, хоть к яве, хоть к пых пыху и т.д. и т.п.. но Вам же поболтать, Вам же не понять... :( (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:17 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
Z axisЯ прочитал в Стандарте C++17 что значениями указателя является то, что написано в скрине в 22003393 . Однако, меня почему-то убеждали, что значение указателя это число. Есть какое-нибудь доказательство этому утверждению? Сразу предупреждаю: кривые аналогии, печать printf-ом в консолечку (или файл) и т.п. доказательством не являются. Вообще, что значение указателя -- это число -- это неверно. Конкретное представление указателя стандартом не определено, определён только интегральный тип, в который можно указатель присвоить без потери значимости чтобы потом можно было бы получить указатель обратно из этого числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:40 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
Z axisВы сначала изучили квантовую механику, теорию твёрдого тела (полупроводников), схемотехнику и т.д. прежде чем лезть в "ячейки памяти"?Возможно вас это удивит, но в шестидесятые-семидесятые годы прошлого века было совершенно нормальным начинать книги для радио любителей с описания принципов работы транзистора (электронно-дырочная проводимость и всё такое). Если хочется чего-то более приближённого к информационным технологиям, то, насколько я помню основы, общеупотребительные компьютеры используют гарвардскую(?) схему с общей памятью для кода и данных. Поскольку память общая, то её содержимое интерпретируется в контексте: когда процессор выбирает команды для исполнения - содержимое памяти декодируется как команда, когда процессор загружает указатель - содержимое памяти будет использовано как число для адресной арифметики . Если хотите оставаться в рамках языка, то почитайте про адресную арифметику, которая много где используется, а потом попробуйте выбрать между двумя взаимоисключающими вариантами интерпретации указателя. P.S. То, что есть специальные значения указателя, не отменяет того факта, что указатель - число. То, что есть архитектуры, где указатель это ячейка памяти и "кое-что ещё" не отменяет там адресной арифметики с валидными указателями. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:45 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
MasterZiv, вебЕму действительно не нужно было использовать слово "интеграл"; просто перечисление затронутых типов данных, поскольку он достаточно, чтобы сказать вам, что эти типы данных ведут себя таким образом. Но, добавив слово "интеграл" к предложению, он неявно подчеркивает причину, по которой они работают таким образом. (я думаю, это такой же лингвистический вопрос, как и программирующий) Брал адрес, конвертил в строку, передавал в другой модуль и там рожал обратно объект. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:48 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
MasterZivВообще, что значение указателя -- это число -- это неверно.Это демагогия. Адресная арифметика, позволяющая сложить указатель и целое имеется? Имеется. Арифметические операции над указателями сильно ограничены? Да, ограничены, ну так и тип особый . ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:48 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
MasterZivВообще, что значение указателя -- это число -- это неверно.Ого... Такого быстрого прогресса я не ожидал :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:53 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
MasterZiv..Вообще, что значение указателя -- это число -- это неверно.... это утверждение в рамках стандарта языка или вообще? если вообще - то пример мона? (круглый) Это утверждение в рамках стандарта языка. Пример чего можно? Пример систем где адреса не являются числами я привёл -- MS DOS (и аналоги) , там в компиляторах есть несколько моделей памяти для приложений, и в них есть несколько типов указателей, 4 штуки, если я не ошибаюсь, из них два являются "числами", а два являются наборами чисел. В современных системах с плоской виртуальной памятью приложения указатели -- да, числа, 64разрядные или 32разрядные. Но стандарт представление указателя не оговаривает, на сколько я помню. Если что, можно прочитать конкретнее тут https://en.cppreference.com/w/cpp/language/pointer ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:53 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
PetroNotC SharpMasterZiv, вебЕму действительно не нужно было использовать слово "интеграл"; просто перечисление затронутых типов данных, поскольку он достаточно, чтобы сказать вам, что эти типы данных ведут себя таким образом. Но, добавив слово "интеграл" к предложению, он неявно подчеркивает причину, по которой они работают таким образом. (я думаю, это такой же лингвистический вопрос, как и программирующий) Брал адрес, конвертил в строку, передавал в другой модуль и там рожал обратно объект. Это вообще-то UB... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:53 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
Basil A. SidorovАдресная арифметика, позволяющая сложить указатель и целое имеется? Имеется.Ну имеется. И как из этого вытекает что указатель это (целое) число? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 10:54 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
Z axisBasil A. SidorovАдресная арифметика, позволяющая сложить указатель и целое имеется? Имеется.Ну имеется. И как из этого вытекает что указатель это (целое) число? Успокойся, пожалуйста, указатель -- НЕ ЦЕЛОЕ ЧИСЛО . Всё, на этом топик закрываю. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 11:00 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
kolobok0MasterZiv..Вообще, что значение указателя -- это число -- это неверно.... это утверждение в рамках стандарта языка или вообще? если вообще - то пример мона? (круглый) Это утверждение в рамках стандарта языка. Пример чего можно? Пример систем где адреса не являются числами я привёл -- MS DOS (и аналоги) , там в компиляторах есть несколько моделей памяти для приложений, и в них есть несколько типов указателей, 4 штуки, если я не ошибаюсь, из них два являются "числами", а два являются наборами чисел. В современных системах с плоской виртуальной памятью приложения указатели -- да, числа, 64разрядные или 32разрядные. Но стандарт представление указателя не оговаривает, на сколько я помню. Если что, можно прочитать конкретнее тут https://en.cppreference.com/w/cpp/language/pointer kolobok0, Сори, я сдуру нажал вместо "ОТВЕТИТЬ" на "ИЗМЕНИТЬ" и тут перемешались твои и мои слова... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 11:02 |
|
Что есть значение указателя?
|
|||
---|---|---|---|
#18+
Z axisMasterZivВообще, что значение указателя -- это число -- это неверно.Ого... Такого быстрого прогресса я не ожидал :-) А тебе все говорили о состоянии вещей ПО ФАКТУ, а не ПО СТАНДАРТУ. И не в языке, а вообще в отрасли. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2019, 11:04 |
|
|
start [/forum/topic.php?fid=57&fpage=11&tid=2017532]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 152ms |
0 / 0 |