Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
8 / 8 / 6
Регистрация: 18.07.2013
Сообщений: 146

Разобрать пример из книги. Возможно ли, что автор ошибся?

06.05.2014, 17:19. Показов 1295. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Ребят, разбираюсь с указателями и в одной книге подозреваю, что в примере кода ошибка в объяснении. Подскажите, пожалуйста, прав я или нет. Тут наверное скрины не приветствуются, поэтому дословно с комментариями перепишу с книги:

Рассмотрим следующий небезопасный метод:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
unsafe static void PrintValueAndAddress()
{
int myInt;
//Определить указатель на int и присвоить ему адрес myInt.
int* ptrToMyInt = &myInt
 
//  Присвоить значение myInt, используя обращение через указатель.
*ptrToMyInt=123;
 
// Вывести на консоль некоторые значения.
Console.WriteLine("Value of myInt {0}" , myInt);  // Значение myInt
Console.WriteLine("Address of myInt {0:X}" , (int)&ptrToMyInt);  // Адрес myInt
}

Вопрос по последней строчке. В комментарии сказано, что на вывод идет адресс переменной myInt, НО неужели это так? ведь адрес переменной myInt можно узнать двумя способами: Console.WriteLine((int)&myInt); и Console.WriteLine((int)ptrToMyInt);

А в учебнике последняя строка кода показывает не адрес переменной myInt, а адрес указателя ptrToMyInt. Я прав? в учебнике ошибка? Разъясните.. ато я на грани запутаться.. когда еще не очень "крепко стоишь на ногах" опечатки в учебниках могут жутко насолить...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2014, 17:19
Ответы с готовыми решениями:

Не ошибся ли автор...?
Вот на этом сайте: http://www.websate.ru/raskrutka/ssylki-sajta.html - есть строки "В том случае, если ссылка представляет собой...

Описать структуру Bibliotec, содержащую следующие поля: автор книги, инвентарный номер книги, название книги
Описать структуру BIBLIOTEC содержащий следующие поля: автор книги , инвентарный номер книги , название книги. Подсчитать , книги скольких...

Задание из книги Р.Лафоре. Что автор имел ввиду?
Здравствуйте! Добрался до 7-й главы книги Лафоре и мне непонятно что имел ввиду автор. Хотя, возможно это переводчик так перевел... ...

7
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,102
06.05.2014, 17:39
должно быть
C#
1
Console.WriteLine("Address of myInt {0:X}" , (int)ptrToMyInt);  // Адрес myInt
1
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
06.05.2014, 17:44
Лучший ответ Сообщение было отмечено Prizrak067 как решение

Решение

Цитата Сообщение от Prizrak067 Посмотреть сообщение
Я прав? в учебнике ошибка?
Да, прав. Значение, которое выводит указатель - адрес переменной, на которую он ссылается, на то он и указатель.
1
8 / 8 / 6
Регистрация: 18.07.2013
Сообщений: 146
06.05.2014, 18:44  [ТС]
Цитата Сообщение от IamRain
Да, прав.
Спасибо!! Так что же тогда за адрес выводит строка
C#
1
Console.WriteLine("Address of myInt {0:X}" , (int)&ptrToMyInt);
адрес указателя?

Смотрю Вы человек знающий, если можно, хочу задать еще пару вопросов Вам.
Какого типа указатель, в данном случае, указатель ptrToMyInt, если при выводе его нужно преобразовать в int?
Что за странное преобразование (int)ptrToMyInt, в скобках нужный тип.. до прикосновения к указателям такое преобразование мне не попадалось и найти ничего по этому поводу не могу..причем, например, строку s="123" преобразовать в число (int)s не получается...
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
06.05.2014, 19:31
Цитата Сообщение от Prizrak067 Посмотреть сообщение
что же тогда за адрес
Адрес самой переменной указателя в стеке текущего потока.
Указатель - переменная, которая хранит адрес другой переменной. Указатели - это переменные (то же самое, что и ссылки), которые хранятся в стеке текущего потока и указывают на данные в неуправляемой куче ( в отличие от ссылок, которые указывают на данные в managed heap). Тип - IntPtr, фактически int-адрес (32 битный вроде как) - это просто число).
Дальнейшие подробности можно найти тут: "Windows via C++" Рихтера.
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.05.2014, 19:41
Prizrak067, в 32-разрядной системе указатель, как можно догадаться из названия, занимает ровно 32 байта. А это и есть размер int. Указатель - это просто число в памяти, которое говорит, в какой ячейке памяти лежит нужное нам значение.

А вот если скомпилировать в 64-разрядную систему, то адрес перестанет влезать в int, и тогда при таком приведении могут возникнуть ошибки
1
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,234
06.05.2014, 19:45
Цитата Сообщение от Psilon Посмотреть сообщение
байта
typo
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.05.2014, 19:47
IamRain, ой ...
Кликните здесь для просмотра всего текста
Для тех, кто не догадался - битов, конечно же
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2014, 19:47
Помогаю со студенческими работами здесь

Опишите, используя структуру записи, книги(автор,название,год издания).Составьте программу вывода на экран упорядоченного списка книг(по фамилии автор
Опишите, используя структуру записи, книги(автор,название,год издания).Составьте программу вывода на экран упорядоченного списка книг(по...

Как на счет - "Разобрать пример из книги по полочкам?"
Здравствуйте. Я начинаю изучать C#, в прочем, не я один в этом разделе. Прочел небольшую книгу для начинающих, в конце книги есть...

Разобрать что делает код (возможно вирус)
На своей машине НЕ ЗАПУСКАЙТЕ!!! Здравствуйте, в js вообще 0, поэтому спрашиваю у знающих, пришел вот файл типа с расширением *.doc...

Разработать базу данных «Научно-техническая библиотека» (фамилия, имя, отечество, автор книги, название книги, город и издательство, год выпуска, тема
что то никак понять не могу(( Разработать базу данных «Научно-техническая библиотека» (фамилия, имя, отечество, автор книги, название...

Простой пример из книги. Что не так то?
Здравствуйте. Начал изучать по книге Турбо Паскаль. Но в компиляторе выдается ошибка почему-то Что тут может быть не так? Пишет что не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru