PLLUG C++/Qt Roadmap Book
  • Вступ
  • Найважливіший розділ у цій книжці
    • Кілька критично важливих порад
    • Встановлення середовища та початок роботи
    • Підготовка до роботи. Командний рядок.
      • Встановлення та налаштування суперконсолі (тільки на Windows)
      • Cheatsheet: Робота з командним рядком
    • Компіляція та запуск першої програми
      • Найменьша програма мовою С++
      • Компіляція програми: як це працює
      • Починаємо програмувати
    • Базова робота з Git та створення власного репозиторію
      • Підготовка до роботи
      • Створюємо репозиторій та заливаємо на GitHub
      • Cheatsheet: Простий алгоритм для роботи з системою контролю версій (одна гілка, один розробник)
      • Працюємо з Git правильно
  • Мова С++ - швидкий вступ та обрані теми
    • Змінні. Деякі з основних типів та їх застосування.
      • Типи int та double
      • Тип bool
      • Тип char
      • Тип std::string
      • Тип std::vector
      • Тип std::array
    • Ключове слово const
  • Середовище розробки QtCreator
    • Налаштування та підготовка до роботи
      • Налаштування інструментаріїв
    • Довідка та ресурси
    • Гарячі клавіші
    • Робота з проектами у QtCreator
      • Файли проекту
      • Основні змінні, які беруть участь у описі проекту
      • Компіляція проекту Qt
      • Очистка проекту
  • Абстрактні типи даних та керування памяттю
    • Абстрактні типи даних
      • Об'єкти та класи. Абстракція.
      • Поля та методи класу
      • Успадкування
      • Віртуальні методи та поліморфізм
    • Вказівники та пам'ять
      • Адреса
      • Вказівники
      • Вказівники: примітивна демонстрація програми у пам'яті
      • Час зберігання об'єкту
  • Знайомство з Qt5
    • Огляд Qt5
      • Ласкаво просимо у світ Qt
      • Огляд можливостей Qt 5
      • Ліцензування Qt
      • Короткий огляд історії Qt
      • “Екосистема” Qt
    • Створення графічного інтерфейсу засобами Qt
      • Віджети (Widgets)
      • Компонування (Layouts)
      • Сигнально-слотові з'єднання
      • Створення сигналів (signals) та слотів (slots)
      • Підсумок: сигнально-слотові з'єднання
      • Коротко про елементи графічного інтерфейсу та їх використання
  • Cheatsheets
  • Demos
  • Missions
    • Mission 1: Досліджуємо Git та командний рядок
    • Mission 2: Консольна гра
    • Mission 3: MazeGame
    • Mission 4: Створюємо абстрактний тип даних
Powered by GitBook
On this page
  1. Абстрактні типи даних та керування памяттю
  2. Вказівники та пам'ять

Адреса

PreviousВказівники та пам'ятьNextВказівники

Last updated 7 years ago

Перед безпосереднім виконанням операційна система (ОС) завантажує програму у оперативну пам'ять. Пам'ять для програми (під час її виконання) виглядає як велетенський масив комірок, кожна з яких має адресу та може зберігати 1 байт інформації.

  • Адреса - це просто число, порядковий номер комірки в пам'яті.

  • Найменьша кількість інформації яка може бути зчитана чи записана за раз - 1 байт.

Змінні, які ми оголошуємо у програмі містять дані, а отже ці дані мають адресу у пам'яті. Для того, щоб дізнатися адресу користуються оператором `&`. У наступному прикладі ми оголошуємо кілька змінних, виводимо їх значення, а потім - адресу у пам'яті.

int number = 42;
std::cout << " number value: " << number << std::endl
    << " number address: " << &number << std::endl
    << std::endl;

std::string message = "Hello, World!";
std::cout << " message value: " << message << std::endl
    << " message address: " << &message << std::endl
    << std::endl;

Якщо ми запустимо цей код, то отримаємо вивід:

 number value: 42
 number address: 00000000001EF8A0

 message value: Hello, World!
 message address: 00000000001EF8B0

Значення адреси 00000000001EF8B0 виглядає дуже незвично. Це тому, що це шістнадцяткове число. Детальніше про шістнадцяткову систему числення можна прочитати Але загалом, для того, щоб почати працювати з памяттю в С++ знати це не обов'язково. Просто звикніть, що існує такий спосіб представлення чисел.

Не плутайте отримання адреси з оголошенням посилання! Коли ми застосовуємо оператор '&' до окремої змінної - це операція отримання адреси!

Наприклад:

int number = 42;

// Оголошуємо посилання на int!
int &refNumber = number;

// Беремо адресу number та виводимо у консоль!
std::cout << &number << std::endl;
тут.