• Wikisun
Layihə çərçivəsində Wikipedia platformasına əlavə olunan məqalə sayı
1
2
5
5
bos-gosterici-null-pointer

Boş göstərici (Null pointer)

Null pointer ("boş göstərici") anlayışı, bir proqramda heç bir obyektə və ya yaddaş ünvanına işarə etməyən göstəricini ifadə edir. Mahiyyəti Bu anlayış proqramlaşdırma dillərində geniş istifadə olunur və müxtəlif dillərdə fərqli şəkildə tətbiq edilir. Null pointerlərdən istifadə etməyin əsas məqsədi, müəyyən dəyişənlərin və ya obyektlərin ilkin olaraq heç bir məzmunla əlaqələndirilmədiyini göstərməkdir. Bununla belə, null pointer xətaları proqramların işləmə zamanı çöküşlərinə səbəb ola bilər və bu səbəbdən müasir proqramlaşdırma dilləri daha təhlükəsiz alternativlər təklif edir. C dilində : C proqramlaşdırma dilində, null pointer ("boş göstərici") çox vaxt işarə etdiyi heç bir obyektin mövcud olmadığı bir göstəricini ifadə edir. C dilinin standartında NULL makrosu, null pointeri ifadə etmək üçün istifadə edilir. NULL adətən “0” olaraq təyin edilir, amma onun istifadəsi proqramın daha oxunaqlı olmasına imkan yarıdar. int main() { int *ptr = NULL; if (ptr == NULL) { printf("Pointer null-dır.\n"); } return 0; } Null pointer C dilində tezsiklə rast gəlinən null dereferencing problemlərinə səbəb ola bilər, bu da proqramın çökməsi ilə nəticələnir. C++ dilində: C++ dilində null pointer istifadəsi çox vaxt C dilindəki istifadəyə bənzəyir, amma C++ standartına daxil edilmiş nullptr açar sözü null pointer təyin etmək üçün daha müasir alternativ təqdim edir. nullptr tipi std::nullptr_t adlandırılan xüsusi bir tipdir. int main() { int *ptr = nullptr; if (ptr == nullptr) { std::cout << "Pointer null-dır." << std::endl; } return 0; } nullptr, overload (yükələnmə) edilmə üsullardan istifadə zaman daha açıq-anlaşılan davranış təmin edir. Fərqli proqramlaşdırma dilləri null pointer anlayışını fərqli şəkildə tətbiq edir: -Java: Java-da null pointer null olaraq ifadə edilir. NullPointerException Java-da çox yayılmış bir istisna (exception) növüdür. String str = null; if (str == null) { System.out.println("Null pointer təyin olunub."); } -Python: Python-da "null pointer" anlayışı yoxdur, amma None obyekti eyni mənaya malikdir. ptr = None if ptr is None: print("Pointer null-dır.") -C# dilində: C# dilində null pointer anlayışı null olaraq ifadə edilir və yalnız referans tipləri üçün tətbiq olunur. Əgər bir dəyişən null olaraq təyin edilmişsə, bu, onun heç bir obyektə işarə etmədiyini göstərir. using System; class Program { static void Main() { string str = null; if (str == null) { Console.WriteLine("Pointer null-dır."); } } } Null pointer xətalarını yüngülləşdirmək üçün bir neçə mütərəqqi yanaşma: - Statik analiz vasitələri: Null pointer istifadəsini mümkün xətaları yoxlamaq üçün alətlər (məs., Coverity, PVS-Studio). - Sözdizim səviyyəsindəki təkmilləşdirmələr: nullptr istifadəsi (C++). - Alternativ strukturların istifadəsi: Rust-da Option tipi kimi. Null pointer istifadəsini aradan qaldırmaq üçün alternativ metodlar: - Option tipi: Rust, Swift kimi dillərdə mövcuddur. -Exceptions: Java-da istisna mexanizmi null pointer xətalarını idarə etmək üçün istifadə edilir. - Smart pointers: C++ dilində std::unique_ptr və ya std::shared_ptr istifadə olunur.


İstinadlar

Tarix : 15 yanvar 2025


Əksi qeyd olunmayıbsa, bu məzmun CC BY-SA 4.0 çərçivəsində yayımlanır.