ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Застосування покажчиків у 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 << "The result is:";

    cout << iResult <

    )

    Код, який ви ввели, оголошує три цілих змінних:

    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:" <

    cout <

    Збережіть свою роботу, виконайте компіляцію і компонування програми. Запустіть програму і переконайтеся, що значення iResult одно 5 (2 +3 = 5).

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

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

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status