Навіщо потрібні покажчики stack overflow російською

"Якщо хтось запалює зірки, значить, це комусь потрібно"

Ось такий приклад. Покладемо, Ви передаєте в функцію якусь змінну. Там з її значенням щось робиться, і нове значення має бути занесено в ту змінну, значення якої Ви в функцію передали. Якщо зробите щось типу цього

Те значення змінної i не зміниться, тому що в функцію передається копія цієї змінної і з нею проводяться операції. А якщо передати покажчик або посилання на цю змінну, то отримаєте доступ до неї і можете змінювати її значення

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

Вже говорили про динамічний виділення пам'яті. Якщо ще про це не читали, то прочитаєте. Там без покажчиків В ПРИНЦИПІ не обійтися.

Це лише кілька прикладів. Чим глибше будете вникати в С ++, тим більше про це дізнаєтеся.

відповідь даний 4 Січня '12 о 18:56

Для повернення декількох значень з функції. Як аргумент передається покажчик на змінну, функція записує туди значення. Такий підхід дуже поширений в DirectX, OpenGL, Windows API та інших бібліотеках в стилі C. Для цього можна використовувати і посилання, але не рекомендується, так як синтаксис передачі і повернення не відрізняється.

C-рядок являє собою покажчик на її перший символ.

Для створення різних структур даних: пов'язаних списків, дерева і т. Д.

Для передачі аргументу в функцію без копіювання (і виклику конструктора для об'єктів), яке може виявитися довгим для складних об'єктів. Правда, тут краще використовувати константні посилання.

Таким чином, застосовуючи покажчиків дуже багато.

Схожі статті