это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
Напишем следующую программу, которая использует указатели. Предположим, что значение iNum1 равно 2, а адрес iNum1 — 1000. INum1 будет занимать байты с адресами 1000, 1001, 1002 и 1003. Если значение iNum2 было равно, то переменная iNum2 могла бы занимать ячейки с адресами 1004, 1005, 1006 и 1007. Следовательно, iNumI начинается с адреса 1000, а iNum2 начинается с адреса 1004. Однако, хотя iNumI занимает четыре адреса, в С/С++ адресом iNumI называется адрес 1000, а адресом iNum2 называется адрес 1004. Теперь объявим две переменные как указатели — pNum1 и pNum2. Ваша цель состоит в том, чтобы сохранить число 1000 (адрес iNumI) в pNum1 и число 1004 (адрес iNum2) в pNum2.
Внесите следующие изменения в main(void):
void main(void)
{
int iNum1;
int iNum2;
int iResult;
int* pNum1;
int* pNum2;
iNum1 = 2;
iNum2 = 3;
pNum1 = &iNum1;
pNum2 = &iNum2;
iResult = *pNum1 + *pNum2;
cout << "The result is: ";
cout << iResult << endl;
}
Код, который вы ввели, объявляет три целых переменных:
int iNum1;
int iNum2 ;
int iResult;
Затем объявляются еще две переменные:
int* pNum1;
int* pNum2;
Обратите внимание, что в объявлении использована запись int*. К какому же типу относится переменная pNum1? Можете ли вы сохранить целое значение в pNum1? Нет. В pNum1 вы можете сохранить адрес переменной типа int. Вы должны сохранить в переменной pNum1 число 1000, поскольку 1000 является адресом iNum1. Точно так же вы должны сохранять адрес целого значения и в переменной pNum2. После этого вы присваиваете значения переменным iNum1 и iNum2:
iNum1 = 2;
iNum2 = 2;
Затем вы присваиваете значения переменным pNumI и pNum2:
pNum1 = &iNum1;
pNum2 = &iNum2;
Эти два оператора сохраняют адрес переменной iNum1 в pNum1 и адрес iNum2 в pNum2. Далее вам нужно вычислить результат сложения iNum1 с iNum2. Вы могли бы бы просто написать оператор
iResult = iNum1 + iNum2;
Однако попробуем выполнить вычисления, применив указатели, а не переменные. Например, чтобы вычислить результат сложения iNuml и iNum2, вы пишете следующий оператор:
iResult = *pNum1 + *pNum2;
Когда вы используете указатель с предшествующим символом *, вы извлекаете значение, хранящееся по данному адресу. *pNum1 — это то же, что и *1000, так что программа обращается к значению, хранящемуся по адресу 1000. Поскольку переменная pNum1 была объявлена как int* (а компилятор знает, что целое значение занимает четыре байта памяти), программа обращается к адресам 1000, 1001, 1002 и 1003. Она находит по этим адресам значение 2, так как *pNum1 равно 2. Аналогично, *pNum2 равно 3, поскольку pNum2 равно 1004, а ячейки памяти 1004, 1005, 1006 и 1007 содержат целое со значением. И, наконец, выполняется оператор cout, который выводит на экран значение переменной iResult:
cout << "The result is: " << endl;
cout << iResult;
Сохраните свою работу, выполните компиляцию и компоновку программы. Запустите программу и убедитесь, что значение iResult равно 5 (2+3=5).
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
мне нужна ваша помощь в билетах аттестации
Ответы на билеты, Помощник по уходу
Срок сдачи к 14 сент.
3. Учет и анализ доходов и расходов организации на примере экономического субъекта.
Курсовая, Бухгалтерский учет
Срок сдачи к 19 сент.
Расчет горизонтального, вертикального и сферического (металлических)...
Самостоятельная работа, Специальные сооружения из металлических и железобетонных конструкций
Срок сдачи к 19 окт.
Решить практическую работу №1 расчёт размеров и построение поперечного сечения горизонтальных и наклонных горных выработок
Другое, Строительная геотехнология
Срок сдачи к 13 сент.
Разработка telegram-бота службы доставки еды на python (aiogram 3 + sqlite)
Курсовая, Программирование
Срок сдачи к 18 сент.
Тема курсовой работы Методы контроля над использованием материальных ресурсов предприятия
Курсовая, Управленческий учет для бизнес - решений
Срок сдачи к 16 сент.
Правовое положение российских граждан за границей
Презентация, Международное частное право
Срок сдачи к 14 сент.
Организация тематических экскурсий с детьми старшего дошкольного возраста.
ВКР, Дошкольная педагогика
Срок сдачи к 31 окт.
Тема: "Геймификация повседневности: превращение труда и обучения в игру".
ВКР, Социальная философия
Срок сдачи к 1 февр.
Окончить дипломную работу по замечаниям руководителя
Диплом, Бухгалтерский учет
Срок сдачи к 12 окт.
Тема: Простые виды деформаций. Расчеты на прочность и жесткость стержневых систем.
Курсовая, Сопротивление материалов
Срок сдачи к 20 сент.
Расчетно-графическая работа по тоэ: расчет трехфазной цепи (вариант 8)
Контрольная, Электротехника
Срок сдачи к 16 сент.
«Разработка архитектурного проекта здания с применением информационных...
Онлайн-помощь, Информатика
Срок сдачи к 16 сент.
Особенности сестринской деятельности при артериальной гипертензии в стационаре
Курсовая, Медицина
Срок сдачи к 19 сент.
Заполните форму и узнайте цену на индивидуальную работу!