Применение покажчиків в З++
Эти два оператора зберігають адресу перемінної 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.