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


Применение указателей в 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 мильонов к студенческой карме :

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

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

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

Реферат Стан соціальної галузі України
Реферат Оболенский, Фёдор Тимофеевич Чёрный
Реферат Фискальная политика и ее роль в макроэкономическом регулировании национальной экономики
Реферат Первобытное общество
Реферат Культура и искусство Древней Греции
Реферат Особенности стилистики агитационной статьи
Реферат Байков Федор Исакович
Реферат Проектування технологічної операції електроерозійної обробки на електроерозійному прошивочному верстаті моделі 183
Реферат Математичне забезпечення САПР
Реферат Документооборот грузовых перевозок
Реферат Фразеосемантическое поле состояние и поведение человека в русских говорах Мордовии
Реферат Инфляция сущность формы и причины
Реферат Розробка довідково-інформаційної бази Факультету компютерних систем
Реферат Проект комплектного тиристорного электропривода постоянного тока
Реферат Оценка потенциальной устойчивости и изменчивости природных комплексов в условиях воздействия нефтегазового комплекса