IPB

Здравствуйте, гость ( Вход | Регистрация )

Поиск по файловому архиву
  Add File

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

Информация о файле
Название файла Применение указателей в C++ от пользователя z3rg
Дата добавления 14.4.2009, 13:52
Дата обновления 14.4.2009, 13:52
Тип файла Тип файла (zip - application/zip)
Скриншот Не доступно
Статистика
Размер файла 3,47 килобайт (Примерное время скачивания)
Просмотров 2043
Скачиваний 1
Оценить файл

Описание работы:


Тип работы: авторский материал
Напишем следующую программу, которая использует указатели. Предположим, что значение iNum1 равно 2, а адрес iNum1 — 1000. INum1 будет занимать байты с адресами 1000, 1001, 1002 и 1003.
Загрузить Применение указателей в C++
Реклама от Google
Доступные действия

Введите защитный код для скачивания файла и нажмите "Скачать файл"

Защитный код
Введите защитный код

Текст работы:


Применение указателей в 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 << "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).

Список литературы

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



Поиск по файловому архиву
Fast Reply  Оставить отзыв  Add File

Collapse

> Статистика файлового архива

Десятка новых файлов 
5 пользователей за последние 3 минут
Active Users 5 гостей, 0 пользователей, 0 скрытых пользователей
Bing Bot, Yandex Bot
Статистика файлового архива
Board Stats В файловом архиве содержится 217129 файлов в 132 разделах
Файлы в архив загрузили 7 пользователей
Файлы с архива были скачаны 13157367 раз
Последний добавленный файл: Дельфин от пользователя admin (добавлен 2.1.2019, 21:39)
RSS Текстовая версия
Рейтинг@Mail.ru

Милица Васильевна НЕЧКИНА
историк, академик.
>>>
Смотреть календарь

Во время войны во Вьетнаме подразделение американских «морских котиков», которым командовал лейтенант Боб КЕРРИ, уничтожило в ходе ночного рейда в дельте реки Меконг жителей мирной деревни. Сенатор и кандидат в президенты от демократической партии ... >>>
Смотреть календарь

УЖОНОК -нка, мн. ужата, ужат, х Недавно вылупившийся уж.

Каким должен быть образцовый магазин

Моделирование работы "образцового" магазина с точки зрения покупателя. Положительное воздействие на покупателя устройства торгового зала магазина. Микроклимат, чистота и порядок, общение персонала с покупателям...