Какъв е смисълът от използването на указатели в C++?
Какъв е смисълът от използването на указатели в C++?

Видео: Какъв е смисълът от използването на указатели в C++?

Видео: Какъв е смисълът от използването на указатели в C++?
Видео: Езикът C++ през погледа на Яна Данаилова, ученичка на Испанската гимназия. 2024, Може
Anonim

Една причина да използвайте указатели е така, че променлива или обект могат да бъдат модифицирани в извикана функция. В C++ по-добра практика е да използване препратки отколкото указатели . Въпреки че препратките са по същество указатели , C++ до известна степен скрива факта и го прави сякаш минаваш по стойност.

По подобен начин може да попитате защо използването на указатели в C++ не се препоръчва?

Умен указатели обикновено следят обектите, към които сочат с цел управление на паметта. Злоупотребата с указатели е основен източник на грешки: постоянното разпределение, освобождаване и препращане, които трябва да се извършват от програма, написана с помощта на указатели въвежда риска от изтичане на паметта.

Освен по-горе, кога трябва да използвам указатели C++? Кога да използване Какво Използвайте указатели : Използвайте указатели ако показалец аритметика или предаване на NULL- показалец е необходимо. Например за масиви (Обърнете внимание, че е реализиран достъп до масив с помощта на показалец аритметика).

Като се има предвид това, какви са предимствата от използването на указатели?

майор предимства на указатели са: (i) Позволява управление на структури, на които паметта се разпределя динамично. (ii) Позволява предаване на масиви и низове, за да функционират по-ефективно. (iii) Дава възможност за предаване на адрес на структура вместо на цялата структура към функциите.

Защо указателите не са безопасни?

Сигурност: От не позволяващ указатели , Java ефективно предоставя друго ниво на абстракция на разработчика. Без поддръжка на указател прави Java повече сигурен защото те сочат към местоположение на паметта или се използват за управление на паметта, което губи сигурността, тъй като ги използваме директно.