Вказівники, масиви. Структури Проф. Куссуль Н.М..

Презентация:



Advertisements
Похожие презентации
Вказівники Вказівник (або покажчик) – особливий тип даних, значенням якого є адреса певного байта оперативної памяті. Значення покажчика - це беззнакове.
Advertisements

Типи даних мови Visual Basic та їх опис. Опис величин Величина - це об'єкт, який має стале або змінне значення. Основні характеристики величин: ім'я,
Запити в Access Запити в базі даних Запити використовуються для перегляду, зміни й аналізу даних різними способами. Основні операції з використанням.
Вказівники і масиви в мові С++. План. 1.Загальні відомості про вказівники. 2.Операції над вказівниками. 3.Вказівники і масиви. 4.Масив як параметр функції.
Опрацювання структур у функціях Оскільки мова С інтерпретує структури як звичайні змінні, а не вказівники, можна передавати значення структури у функцію.
Функції з неоголошеними параметрами Інколи у функції потрібно передати деяке число фіксованих параметрів та невизначене число додаткових. В цьому випадку.
Вказівники на функції В мові С імя функції є константним вказівником на перший байт виконавчого коду функції. Це адреса оперативної памяті, яка відповідає.
Електронні таблиці EXCEL Введення формул до ЕТ. Формули призначені для виконання дій над вмістом клітинок (над даними) згідно з умовою конкретної задачі.
Урок 6 5 клас. Файли, папки та операції над ними.
Робота з даними в динамічній пам'яті На відміну від звичайного розподілу пам'яті, де вона розподіляється під час компіляції ( наприклад int a[10], де виділяється.
Основи алгоритмізації та програмування Надання значень величинам. Вказівки присвоєння та введення.
Масив – це впорядкований іменований набір із фіксованої кількості однотипних даних. а 1 а 2 а 3 в 1 в 2 с 1 Доступ до будь – якого елементу масиву здійснюється.
8 Практична робота 11 Налагодження готової програми За новою програмою Урок 38.
Електронні таблиці EXCEL Використання логічних формул і операцій при опрацюванні даних.
Урок 22 7 клас ЕЛЕКТРОННІ ТАБЛИЦІ ТП MS EXCEL. Використання формул і функцій
Класи пам'яті даних. Клас пам'яті, час існування та видимість об'єкта Кожен обєкт програми (змінна, функція,...) має свій тип і клас памяті. Тип визначає.
Оператори. Введення і виведення даних. Оператор присвоювання Оператори це команди програми. Оператор присвоювання є основним оператором мови програмування.
Бази даних Поняття про моделі даних. Види моделей даних Бази даних.
Основи алгоритмізації та програмування Табличні величини. Опис табличних величин мовою Паскаль.
База даних (БД) це структурована сукупність взаємопов'язаних даних певної предметної області (реальних об'єктів, процесів, явищ тощо). це структурована.
Транксрипт:

Вказівники, масиви. Структури Проф. Куссуль Н.М.

Вказівники Використовується для посилання на змінні та машинні адреси Для типу Т тип Т* – вказівник на Т Змінна Т* містить адресу обєкту Т int k = 5; int* p = &k; 5&k kp Адреса змінної k

NULL адреса Будь-якому вказівнику можна присвоїти значення 0 Умови: Якщо вичерпана память, оператор new повертає 0 При вказівнику на кінець динамічної структури (список, дерева) int* p=0; //вказує на NULL

Операції з вказівниками Розіменування вказівника Операція непрямої адресації int *a; // оголошення змінної типу вказівник *a=4; // розіменування вказівника

Приклади int i = 5, j; int* p = &i; j = p; //заборонено (вказівник не перетворюється в ціле!) j = *p+1; //j=6 p = &j; //p вказує на j

Адресація Вказівники відображають механізм адресації компютера – доступ до комірок памяті На сьогодні мінімальною одиницею комірки памяті є байт Байт відповідає char

Посилання Посилання (reference) являє собою видозмінену форму вказівника, яка використовується в якості псевдоніму (іншого імені) змінної Посилання не потребують додаткової памяті Для визначення посилання використовують символ & (амперсант), який ставитися перед змінною- посиланням. Змінні типу посилання можуть використовуватися в наступних цілях: замість передачі у функцію об'єкта за значенням; для визначення конструктора копії; для перевантаження унарних операцій;

Масиви Масив – похідний тип даних; Масив - спеціальна форма вказівника, яка звязана з неперервним фрагментом памяті для зберігання індексованих послідовностей значень; int* c; char** ppr; int* ap[15]; //масив з 15 вказівників на int int* f(char*); int (*fp)(char*); //вказівник на функцію

Масиви Для будь-якого типу Т T[size] – масив із size елементів float a[31]; double b[3]; Розмір масиву size повенен бути константою!

Багатовимірні масиви Масив, елементами якого є масиви int d2[10][20]; //матриця 10 на 20 float d3[10][10][10]; //тривимірний масив

Ініціалізатор масиву Список значень int v1[] = {1, 2, 3, 4}; char v2[] = {a, b, 0}; Якщо масив оголошено без вказання розміру, але ініціалізовано списком, то розмір обчислюється автоматично шляхом підрахунку елементів списку! Якщо розмір вкзаується явно, то кількість елементів не повинна перевищувати заданого розміру! char v3[2] = {a, b, 0}; // помилка!

Ініціалізатор масиву (прод.) Якщо в списку недостатньо елементів, інші елементи ініціалізуються нулями! int v[5] = {1, 2, 3}; v[5] = {1, 2, 3, 0, 0}; Не існує присваювання, яке аналогічно ініціалізації: v[3] = {1, 2, 3}; //недопустимо!

Вказівники на масиви Імя масива може використовуватися в якості вказівника на його перший елемент int v[] = {1, 2, 3, 4}; int* p1 = v; int* p2 = &v[0]; int* p3 = &v[4]; 1234 p1p2 p3 v

Двовимірний масив Масив виду A[N][M] int a[4][5]; int* p; *p = a; a[i][j] = 4; *(p+i*M+j) = 4; jM i* N

Двовимірний масив (прод.) Розміщення в памяті pp+1p+2p+3p+4p+5 a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]

Двовимірний масив int** data; data = new int*[N]; // створення рядків for (int j=0; j<N; j++) data[j] = new int[M]; //створення стовпчиків for (int i=0; i<N; i++) for(int j=0; j<M; j++) data[i][j] = i+j; for(int i=0; i<N; i++) delete [] data[i]; //звільнення памяті від кожного рядка delete [] data; //звільнення памяті від масиву

Структура Складений тип, який поєднує різні компоненти в єдину іменованну змінну struct address { char* name; long int number; char* street; char* city; long zip; }; Масив – набір елементів одного типу Структура - набір елементів різних типів

Структура (прод.) Елементи структури наз. членами (members) Вони мають індивідуальні імена! Структури використовуються для створення агрегатів, які підходять для опису складних даних

Оголошення змінної типу структури address jb; jb.name = John Doe; jb.number = 61; Для ініціалізації структури можна використати ініціалізатор масиву: address jb = {James Bond, 61, Arapahot Str., Boulder, CO, 02092};

Доступ до елементів структури Два способи: Крапка: змінна_структури.імя_елемента Вказівник (*вказівник_структури).імя_елемента вказівник_структури->імя_елемента address my; my.number = 116; address* neighbor; neighbor->number = 120; // або (*neighbor).number = 120;

Операції над структурами Доступ до елементів крапка (.), або вказівники (->) Присвоювання (=) Операція порівняння не визначенa! (==, !=, тощо) Структури можна передавати як аргументи функцій address set_cur(address next){ address prev = current; current = next; return prev; }

Приклад: аргумент функції