Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Применение покажчиків в З++

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Эти два оператора зберігають адресу перемінної iNum1 в pNum1 і записуйте адресу iNum2 в pNum2. Далі ви повинні обчислити результат складання iNum1 з iNum2. Ви міг би б написати оператор. Однако спробуємо виконати обчислення, застосувавши покажчики, а чи не перемінні. Наприклад, щоб вирахувати результат складання iNuml і iNum2, ви пишете наступний оператор: Сохраните своєї роботи, виконайте… Читати ще >

Применение покажчиків в З++ (реферат, курсова, диплом, контрольна)

Применение покажчиків в 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).

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

Для підготовки даної роботи було використані матеріали із сайту internet.

Показати весь текст
Заповнити форму поточною роботою