powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что есть значение указателя?
17 сообщений из 17, страница 1 из 1
Что есть значение указателя?
    #39883959
Z axis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я прочитал в Стандарте C++17 что значениями указателя является то, что написано в скрине в 22003393 .
Однако, меня почему-то убеждали, что значение указателя это число. Есть какое-нибудь доказательство этому утверждению? Сразу предупреждаю: кривые аналогии, печать printf-ом в консолечку (или файл) и т.п. доказательством не являются.
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39883972
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Указатель это адрес в памяти где расположено то, на что он указывает. Память адресуется номерами ячеек (целое число от 0 до 2 32 или 2 64 ), поэтому указатель - число.

Ну это не так на самом деле...

Пойди попрограммируй в DOS.
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884014
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z axis,

Вам уже пытались объяснять в топике на который Вы ссылаетесь.
Вы не верите, пытаясь трактовать по своему постулаты от C++.

Давайте про истину.
Открою большой секрет - в компьютере типов нет. От слова совсем. Это термин только из области языка, которым человек пытается формализовать бизнес задачу таким образом чтоб писанины было меньше а профитов больше. В частности язык C++. На самом деле, на уровне железа, есть понимание ячейки памяти и её адрес. Ячейка содержит 8 разрядов (да-нет) и называется байтом. Адрес, для простоты душевной, принято использовать линейно. Предположим у Вас 100 байт памяти, и в пятой ячейке лежит значение 200. Тогда 5 = это адрес ячейки, в которой лежит 200. Вот адреса ячеек и принято называть указателями. Но не всегда указатели являются адресами на память... Например у Вас 100 байт, значит ли это, что указатель не может быть более 99? Формально да, в жизни он может быть и 700000.

Окейно.
У нас 100 ячеек памяти, в 5 ячейке лежит 200. Мы взяли и изменили 200 на 66. Изменился ли адрес ячейки 5? Нет, он таким и остался. Изменилось ли значение этой ячейки? Да, с 200 на 66.


Что в том, что написано выше Вам не понятно?


(круглый)
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884027
Z axis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0Вам уже пытались объяснять в топике на который Вы ссылаетесь.
Вы не верите, пытаясь трактовать по своему постулаты от C++.Почему Вы решили что трактую по-своему я, а не мои оппоненты?
kolobok0Открою большой секрет - в компьютере типов нет. От слова совсем. Это термин только из области языкаО, то есть Вы согласны, что приводить описание компьютера при объяснении чего-то из области языка некорректно? Что при рассуждении о чём-то из области языка нужно оставаться только в области языка (стандарт там или ещё какая спецификация)?
kolobok0Что в том, что написано выше Вам не понятно?Какое это имеет отношение к C++. Ни одной ссылки/цитаты на/из стандарт(а)...
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884033
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z axis,

Вы же ратовали за истину.
Я Вам и рассказал как оно на самом деле происходит внутри компьютера. Если Вам это не понятно - то лезть выше имхо глупо... ссылок полно, хотя возможно сегодня первый день чибурнета - могли в гугле и забанить конечно же Вас... помойму это сейчас разжовывать должны в школе..типо информатика и иже...

к языку, т.к. он искусственен, можно прийти в любой момент. хоть к азму, хоть к сям, хоть к яве, хоть к пых пыху и т.д. и т.п..

но Вам же поболтать, Вам же не понять... :(


(круглый)
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884056
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z axisЯ прочитал в Стандарте C++17 что значениями указателя является то, что написано в скрине в 22003393 .
Однако, меня почему-то убеждали, что значение указателя это число. Есть какое-нибудь доказательство этому утверждению? Сразу предупреждаю: кривые аналогии, печать printf-ом в консолечку (или файл) и т.п. доказательством не являются.

Вообще, что значение указателя -- это число -- это неверно.
Конкретное представление указателя стандартом не определено, определён только интегральный тип, в который можно указатель присвоить без потери значимости чтобы потом можно было бы получить указатель обратно из этого числа.
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884061
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z axisВы сначала изучили квантовую механику, теорию твёрдого тела (полупроводников), схемотехнику и т.д. прежде чем лезть в "ячейки памяти"?Возможно вас это удивит, но в шестидесятые-семидесятые годы прошлого века было совершенно нормальным начинать книги для радио любителей с описания принципов работы транзистора (электронно-дырочная проводимость и всё такое).

Если хочется чего-то более приближённого к информационным технологиям, то, насколько я помню основы, общеупотребительные компьютеры используют гарвардскую(?) схему с общей памятью для кода и данных.
Поскольку память общая, то её содержимое интерпретируется в контексте: когда процессор выбирает команды для исполнения - содержимое памяти декодируется как команда, когда процессор загружает указатель - содержимое памяти будет использовано как число для адресной арифметики .

Если хотите оставаться в рамках языка, то почитайте про адресную арифметику, которая много где используется, а потом попробуйте выбрать между двумя взаимоисключающими вариантами интерпретации указателя.

P.S.
То, что есть специальные значения указателя, не отменяет того факта, что указатель - число.
То, что есть архитектуры, где указатель это ячейка памяти и "кое-что ещё" не отменяет там адресной арифметики с валидными указателями.
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884064
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,
вебЕму действительно не нужно было использовать слово "интеграл"; просто перечисление затронутых типов данных, поскольку он достаточно, чтобы сказать вам, что эти типы данных ведут себя таким образом. Но, добавив слово "интеграл" к предложению, он неявно подчеркивает причину, по которой они работают таким образом.

(я думаю, это такой же лингвистический вопрос, как и программирующий)
Брал адрес, конвертил в строку, передавал в другой модуль и там рожал обратно объект.
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884065
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВообще, что значение указателя -- это число -- это неверно.Это демагогия.
Адресная арифметика, позволяющая сложить указатель и целое имеется? Имеется.
Арифметические операции над указателями сильно ограничены? Да, ограничены, ну так и тип особый .
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884068
Z axis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВообще, что значение указателя -- это число -- это неверно.Ого... Такого быстрого прогресса я не ожидал :-)
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884069
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv..Вообще, что значение указателя -- это число -- это неверно....

это утверждение в рамках стандарта языка или вообще?
если вообще - то пример мона?

(круглый)

Это утверждение в рамках стандарта языка.

Пример чего можно?

Пример систем где адреса не являются числами я привёл -- MS DOS (и аналоги) , там в компиляторах есть
несколько моделей памяти для приложений, и в них есть несколько типов указателей, 4 штуки, если я не ошибаюсь,
из них два являются "числами", а два являются наборами чисел.

В современных системах с плоской виртуальной памятью приложения указатели -- да, числа, 64разрядные или 32разрядные.
Но стандарт представление указателя не оговаривает, на сколько я помню.

Если что, можно прочитать конкретнее тут

https://en.cppreference.com/w/cpp/language/pointer
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884071
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpMasterZiv,
вебЕму действительно не нужно было использовать слово "интеграл"; просто перечисление затронутых типов данных, поскольку он достаточно, чтобы сказать вам, что эти типы данных ведут себя таким образом. Но, добавив слово "интеграл" к предложению, он неявно подчеркивает причину, по которой они работают таким образом.

(я думаю, это такой же лингвистический вопрос, как и программирующий)
Брал адрес, конвертил в строку, передавал в другой модуль и там рожал обратно объект.

Это вообще-то UB...
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884073
Z axis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovАдресная арифметика, позволяющая сложить указатель и целое имеется? Имеется.Ну имеется. И как из этого вытекает что указатель это (целое) число?
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884078
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z axisBasil A. SidorovАдресная арифметика, позволяющая сложить указатель и целое имеется? Имеется.Ну имеется. И как из этого вытекает что указатель это (целое) число?

Успокойся, пожалуйста, указатель -- НЕ ЦЕЛОЕ ЧИСЛО .

Всё, на этом топик закрываю.
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884081
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0MasterZiv..Вообще, что значение указателя -- это число -- это неверно....

это утверждение в рамках стандарта языка или вообще?
если вообще - то пример мона?

(круглый)

Это утверждение в рамках стандарта языка.

Пример чего можно?

Пример систем где адреса не являются числами я привёл -- MS DOS (и аналоги) , там в компиляторах есть
несколько моделей памяти для приложений, и в них есть несколько типов указателей, 4 штуки, если я не ошибаюсь,
из них два являются "числами", а два являются наборами чисел.

В современных системах с плоской виртуальной памятью приложения указатели -- да, числа, 64разрядные или 32разрядные.
Но стандарт представление указателя не оговаривает, на сколько я помню.

Если что, можно прочитать конкретнее тут

https://en.cppreference.com/w/cpp/language/pointer



kolobok0,

Сори, я сдуру нажал вместо "ОТВЕТИТЬ" на "ИЗМЕНИТЬ"
и тут перемешались твои и мои слова...
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884083
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z axisMasterZivВообще, что значение указателя -- это число -- это неверно.Ого... Такого быстрого прогресса я не ожидал :-)

А тебе все говорили о состоянии вещей ПО ФАКТУ, а не ПО СТАНДАРТУ.
И не в языке, а вообще в отрасли.
...
Рейтинг: 0 / 0
Что есть значение указателя?
    #39884150
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты в закрытый топик пишешь.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что есть значение указателя?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]