რა აზრი აქვს C++-ში პოინტერების გამოყენებას?
რა აზრი აქვს C++-ში პოინტერების გამოყენებას?

ვიდეო: რა აზრი აქვს C++-ში პოინტერების გამოყენებას?

ვიდეო: რა აზრი აქვს C++-ში პოინტერების გამოყენებას?
ვიდეო: C++ Pointers - Finally Understand Pointers 2024, ნოემბერი
Anonim

ერთი მიზეზი იმისა გამოიყენეთ მაჩვენებლები არის ისე, რომ ცვლადი ან ობიექტი შეიძლება შეიცვალოს გამოძახებულ ფუნქციაში. In C++ უკეთესი პრაქტიკაა გამოყენება მითითებები ვიდრე მაჩვენებლები . თუმცა ცნობები არსებითად მაჩვენებლები , C++ გარკვეულწილად მალავს ფაქტს და გეჩვენება, თითქოს ფასს გადიხარ.

ანალოგიურად, თქვენ შეიძლება იკითხოთ, რატომ არ არის რეკომენდებული პოინტერების გამოყენება C++-ში?

ჭკვიანი მაჩვენებლები როგორც წესი, თვალყურს ადევნებენ ობიექტებს, რომლებზეც მიუთითებენ მეხსიერების მართვის მიზნით. ბოროტად გამოყენება მაჩვენებლები არის შეცდომების ძირითადი წყარო: მუდმივი განაწილება, განაწილება და მითითება, რომელიც უნდა შესრულდეს პროგრამის გამოყენებით დაწერილი მაჩვენებლები წარმოადგენს მეხსიერების გაჟონვის რისკს.

გარდა ზემოთ, როდის უნდა გამოვიყენო მაჩვენებლები C++? როდის გამოყენება Რა გამოიყენეთ მაჩვენებლები : გამოიყენეთ მაჩვენებლები თუ მაჩვენებელი არითმეტიკა ან NULL-ის მიღება მაჩვენებელი საჭიროა. მაგალითად, მასივებისთვის (გაითვალისწინეთ, რომ მასივის წვდომა განხორციელებულია პოინტერის გამოყენებით არითმეტიკა).

ამის გათვალისწინებით, რა უპირატესობა აქვს პოინტერების გამოყენებას?

მაიორი უპირატესობები დან მაჩვენებლები არის: (i) ის საშუალებას იძლევა მართოს სტრუქტურები, რომლებსაც მეხსიერება დინამიურად ენიჭება. (ii) ის საშუალებას იძლევა გადასცეს მასივები და სტრიქონები უფრო ეფექტურად ფუნქციონირებს. (iii) შესაძლებელს ხდის ფუნქციებს გადასცეს სტრუქტურის მისამართი მთელი სტრუქტურის ნაცვლად.

რატომ არ არის პოინტერები უსაფრთხო?

დაცვა: ავტორი არა საშუალებას იძლევა მაჩვენებლები , Java ეფექტურად უზრუნველყოფს დეველოპერს აბსტრაქციის სხვა დონეს. მაჩვენებლის მხარდაჭერის გარეშე ჯავას მეტი უსაფრთხო რადგან ისინი მიუთითებენ მეხსიერების მდებარეობაზე ან გამოიყენება მეხსიერების მართვისთვის, რაც კარგავს უსაფრთხოებას, რადგან ჩვენ მათ პირდაპირ ვიყენებთ.