IPB

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

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

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

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

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

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

Имре НЕМЕТ
венгерский спортсмен, олимпийский чемпион 1948 года в метании молота. Его сын Миклош также становился рекордсменом мира и олимпийским чемпионом, но в метании копья.
>>>
Смотреть календарь

Спустя 18 лет после своего изгнания из страны президентом Аргентины вновь избран Хуан ПЕРОН. >>>
Смотреть календарь

ЗАБОЛОТЬ ж. заболотье ср. место за болотом. См. заболокать. Заболотный, лежащий за болотом, по ту сторону болота. Заболотник, заболотень м. житель заболотья.

Региональная фрагментация политической культуры населения Украины

Предмет исследования – региональная фрагментация политической культуры населения Украины и ее влияние на политический процесс.