Реферат по предмету "Программирование"

Узнать цену реферата по вашей теме


Применение указателей в C++

Применение указателей в C++

Напишем следующую программу, которая использует
указатели. Предположим, что значение 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

cout

}

Код, который вы ввели, объявляет три целых переменных:

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

cout

Сохраните свою работу, выполните компиляцию и
компоновку программы. Запустите программу и убедитесь, что значение iResult
равно 5 (2+3=5).
Список литературы

Для подготовки данной работы были использованы
материалы с сайта http://www.realcoding.net


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Доработать Узнать цену написания по вашей теме
Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Kandle Man Essay Research Paper
Реферат Стратегічний аналіз та визначення пріоритетних напрямків розвитку підприємства ВАТ Інтерпайп НМТЗ
Реферат Дело - система автоматизации делопроизводства и электронного документооборота
Реферат Краткая экономическая характеристика ООО "Инвестканцторг"
Реферат World Trade Center Tragdy Essay Research Paper
Реферат Интернет и его влияние в политической коммуникации
Реферат Стратегия построения программы маркетинговой коммуникационной политики
Реферат Устройства ЭВМ: КЭШ-память
Реферат What Do Us History Teach Us About
Реферат Tragic Hero Essay Research Paper While Aristotle
Реферат Проектные решения очистных сооружений нефтесодержащих стоков. Дифференциатор ДНС 3М
Реферат Формирование графических навыков у детей II младшей группы
Реферат Технология создания бренда ресторана национальной кухни: опыт реализации успешного проекта
Реферат Использование геоинформационных систем при проведении геологического аудита месторождений гранитов
Реферат NonLethal Weapons VS Lethal Weapons Essay Research