Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 10.12.2018
Сообщений: 52
1

Использование указателей

22.06.2019, 18:50. Показов 1016. Ответов 2
Метки нет (Все метки)

я не могу понять как работает эта задача:

C++
1
2
3
4
5
6
7
8
long A[16]={ 0x00, 0x01, 0x02, 0x03,
0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0A, 0x0B,
0x0C, 0x0D, 0x0E, 0x0F };
long *p;
p=A+4;
*p+=4;
cout<<*p;
ответ будет 8, но я не понимаю в чем смысл, как это решается, откуда тут 8 взялось и причем тут эта матрица
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2019, 18:50
Ответы с готовыми решениями:

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между...

Использование указателей
Всем привет, вот изучаю помалу С++. И уже третий час немогу впарится в Указатели недаётся мне это,...

Использование указателей
Не могли бы вы показать как решить это через указатели. Решение правильное. #include &lt;iostream&gt;...

Использование указателей
Здравствуйте, немного не понимаю как правильно использовать указатели, например, я знаю, что при...

2
4330 / 2388 / 995
Регистрация: 07.02.2019
Сообщений: 6,269
22.06.2019, 19:02 2
Лучший ответ Сообщение было отмечено easyfreeze как решение

Решение

easyfreeze,
C++
1
2
3
4
5
6
long A[16] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
//               ^                       ^
//               |                       | A + 4
//               | A
 
// итого: *(А + 4) + 4 == 8
2
71 / 92 / 12
Регистрация: 26.01.2014
Сообщений: 616
22.06.2019, 19:40 3
Здесь простые игры с указателями.
К твоему массиву А[] можно обратиться как к массиву. А[4] есть четвертый элемент массива, начиная с 0, т.е. А[4] = 0x04. Но имя массива A - есть указатель (адрес) первого элемента твоего массива. Т.е. *A = A[0] ( = 0x00). P - определено как указатель на long. P=A+4, означает, что к адресу из A добавляется четыре значения адресов элементов типа long, и в P - будет адрес четвертого элемента твоего массива A. Идентично можно написать P= &A[4]. Тогда *P - это то значение, которое лежит по адресу из P, а там лежит адрес четвертого элемента массива A. Т.е. *P - это значение четвертого элемента твоего исходного массива A (=0x04). *P=0x04. К значению *P добавляется 4 и результат опять отправляется в *P. 0x04 + 4 = 8 или если хочешь 0x08. И наконец ты выводишь то, что у тебя по адресу из P, т.е. *P. А это 8.

Почитай внимательно еще раз связь массивов и указателей. А о какой матрице ты еще спрашиваешь? Матриц здесь я не вижу.
Всегда твой - Etien
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2019, 19:40

Помощь в написании контрольных, курсовых и дипломных работ здесь.

использование указателей
Подскажите, пожалуйста, в чем здесь ошибка? #include &lt;iostream&gt; using namespace std; int x =...

использование указателей
не знал как тему даже назвать :-class CTest { public: int x; void xpp() { x++; } };

использование указателей
Должна быть разработана программа с меню с использованием указателей: 1. Изменить порядок...

Использование ссылок и указателей
Добрый вечер Помогите разобраться и понять «Использование ссылок и указателей» Прочел много...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.