МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
Динамічні масиви .В С++ існує зв'язок між вказівниками і масивами, і зв'язок дуже тісний . Будь-який доступ до елемента масиву, який здійснений операцією індексації, може бути виконаний за допомогою вказівника. Варіант з вказівниками в загальному випадку працює швидше, але розібратися в ньому досить важко. Оголошення int а[10]; визначає масив а розміру 10, тобто блок з 10 послідовних об'єктів з іменами а[0], а[1] ..., а[9]. Запис а[i] посилає нас до i-го елемента масиву. Якщо pa є вказівник на int, тобто оголошений як int *pa; то в результаті присвоєння pa = &a[0]; pa вказуватиме на нульовий елемент а, інакше кажучи, pa міститиме адресу елемента а[0]. Тепер присвоєння x = *pa; копіюватиме вміст а[0] в x. Якщо pa указує на деякий елемент масиву, то pa+1 за визначенням вказує на наступний елемент, pa+i - на i-й елемент після pa, а pa-i - на i-й елемент перед pa. Таким чином, якщо pa вказує на а[0], то *(pa+1) є вміст а[1], a+i - адреса а[i], а *(pa+i) - вміст а[i]. Зроблені зауваження вірні незалежно від типу і розміру елементів масиву а. Значення слів "додати 1 до вказівника", як і значення будь-якої арифметики з вказівниками, полягає в тому, щоб pa+1 вказував на наступний об'єкт, а pa+i - на i-й після pa. Між індексацією і діями з покажчиками існує дуже тісний зв'язок. За визначенням значення змінної або вирази типу масив є адреса нульового елемента масиву. Після присвоєння pa = &a[0]; ра і а мають одне і те ж значення. Оскільки ім'я масиву є синонімом розташування його початкового елемента, присвоєння pa=&a[0] можна також записати в наступному вигляді: pa = а; Але а[i] можна записати як *(a+i). Обчислюючи а[i], С++ відразу перетворить його в *(a+i); вказані дві форми запису еквівалентні. З цього виходить що отримані в результаті вживання оператора & записи &a[i] і a+i також будуть еквівалентними, тобто і в тому і в іншому випадку це адреса i-го елемента після а. З другого боку, якщо pa - вказівник, то його можна використовувати з індексом, тобто запис pa[i] еквівалентний запису *(pa+i). Коротше кажучи, елемент масиву можна зображати у як вигляді вказівника із зсувом, так і у вигляді імені масиву з індексом. Між ім'ям масиву і вказівником, виступаючим в ролі імені масиву, існує одна відмінність. Вказівник - це змінна, тому можна написати pa=a або pa++. Але ім'я масиву не є змінним, і записи на зразок a=pa або a++ не допускаються.
Читайте також:
|
||||||||
|