Форум программистов, компьютерный форум CyberForum.ru

Работа с указателями - C++

Восстановить пароль Регистрация
 
кайз
0 / 0 / 0
Регистрация: 21.05.2012
Сообщений: 22
04.06.2012, 10:00     Работа с указателями #1
Написать программу работы с указателями.
LONG *p1;
ULONG x = 5;
LONG y = -1;
LONG *p2 = p1 + 50;
p2 = p2 + x * y;
*p2 = 1;
Не используя, компилятор дать ответ к чему приведет выполнение
представленного выше кода. Объяснить свой ответ.
У самого не получается,прошу помочь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2012, 10:00     Работа с указателями
Посмотрите здесь:

C++ Работа с указателями
Работа с указателями C++
C++ Работа с указателями
работа с указателями C++
работа с указателями C++
C++ Работа с указателями
Работа с указателями C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ps10n1ck
 Аватар для ps10n1ck
53 / 47 / 2
Регистрация: 10.11.2010
Сообщений: 132
04.06.2012, 11:01     Работа с указателями #2
Цитата Сообщение от кайз Посмотреть сообщение
C++
1
2
3
4
5
6
LONG *p1;
ULONG x = 5;
LONG y = -1;
LONG *p2 = p1 + 50;
p2 = p2 + x * y;
*p2 = 1;
По строкам:
1. Указатель на тип long (знаковое целое) (указатель p1 не инициализирован - может указывать куда угодно = получить любой адрес памяти)

2. Присвоение значения числу X (беззнаковое целое) = 5
ULONG = typedef unsigned long ULONG;

3. Присвоение значения числу Y (знаковое целое) = -1

4. Указатель на тип long (знаковое целое) и присвоение ему нового адреса.
Адрес высчитывается из выражения: полученный адрес указателя p1 + смещение на 50 единиц памяти (sizeof(long)*50)

5. Присвоение указателю p2 нового адреса памяти.
Адрес получается из выражения: из текущего адреса p2 делаем смещение на -5 единиц (вычитаем 5 единиц памяти sizeof(long)*5 )

6. Присвоение значения *p2
теперь при выполнении выражения ( std::cout << *p2; ) на экране выдаст значение 1
Yandex
Объявления
04.06.2012, 11:01     Работа с указателями
Ответ Создать тему
Опции темы

Текущее время: 04:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru