Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2012, 12:21   #1
СтёпышЪ
Пользователь
 
Аватар для СтёпышЪ
 
Регистрация: 20.04.2012
Сообщений: 16
Вопрос из самостоятельной по С++

Здарствуйте. сегодня была самостоятельная. и в одном задании был такой пример кода:
Код:
int *ptr1=(int*) 100;
int *ptr2=(int*) 220;
ptr1++;
ptr2-=10;
надо было ответить какие значения получат ptr1, ptr2 и ptr2-ptr1

вопрос в том, что означает
Код:
int *ptr1=(int*) 100;
СтёпышЪ вне форума Ответить с цитированием
Старый 27.04.2012, 19:16   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Только то, что написано... После:
Код:
int *ptr1=(int*) 100;
ptr1 = 100
p51x вне форума Ответить с цитированием
Старый 27.04.2012, 19:39   #3
СтёпышЪ
Пользователь
 
Аватар для СтёпышЪ
 
Регистрация: 20.04.2012
Сообщений: 16
По умолчанию

получается ответ будет таким?
ptr1=101
ptr2=210
ptr2-ptr1=109?
СтёпышЪ вне форума Ответить с цитированием
Старый 27.04.2012, 20:14   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Самое легкое - скомпилировать и посмотреть.
http://ideone.com/kAqAA
Ответы:
ptr1=104
ptr2=180
ptr2-ptr1=19
Так как ptr1 и ptr2 - адреса (указатели на инт), то применяется адресная арифметика.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.04.2012, 21:02   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

2 BDA
Низя так сразу... Нету у вас опыта преподавания, надо чтобы человек разобрался и понял, а готовый ответ больше медвежья услуга.
p51x вне форума Ответить с цитированием
Старый 27.04.2012, 21:08   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

p51x, опыта нету.
Но если никто не скажет правильного ответа, то человек будет думать, что правильно решил.
Как человек сможет разобраться, если не узнает, что не прав?
А так товарищ СтёпышЪ знает, что должен разобраться с адресной арифметикой .
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.04.2012, 21:42   #7
СтёпышЪ
Пользователь
 
Аватар для СтёпышЪ
 
Регистрация: 20.04.2012
Сообщений: 16
По умолчанию

ну я как раз скомпилировал))) и получил как я понял 16-ричное число...

вместо 100 на выводе после операции ++ получил 00000068 переведя в 10-значное получается 104...


возник вопрос как ответить на такое без компилятора?
и адрес чего имено? памяти?

З.ы. простите что столько спрашиваю обычно сам стараюсь найти в эл.книгах или в инете... все же когда люди объясняют быстрее усваиваю))))
СтёпышЪ вне форума Ответить с цитированием
Старый 27.04.2012, 21:53   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

http://ru.wikipedia.org/wiki/Указатель_(тип_данных)
http://www.helloworld.ru/texts/comp/...c2/book016.htm
Да, адрес в памяти, который ссылается на начало числа типа int, т.е. 4-байтового.
Раз мы объявляем именно указатель, то будет действовать адресная арифметика.
В этом основная "заковыка" - не забыть, что работаем с указателем, а не самим числом.

Еще чуть-чуть информации об указателях в приложенной лекции.
Вложения
Тип файла: pdf Lection06.pdf (171.9 Кб, 8 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.04.2012, 22:03   #9
СтёпышЪ
Пользователь
 
Аватар для СтёпышЪ
 
Регистрация: 20.04.2012
Сообщений: 16
По умолчанию

BDA спасибо огромное. завтра после пар прочту...
СтёпышЪ вне форума Ответить с цитированием
Старый 28.04.2012, 07:59   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Без компилятора легко... Главное не забыть огаварится, если это не подразумевается контекстом, типа: на нашей ОС в нашем компиляторе размер инта 4 байта, а значит...
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц