Programlama dillerinde işaretçi, bellek adresi tutmak için tasarlanmış bir türdür.
İşaretçiyi anlamada, bir benzetim olarak kitap ayracı örneği verilebilir. Ayraç bir kitap sayfasına yerleştirilir, burada sayfa numarası bir bellek adresi, ayraç ise bir işaretçidir. Sayfa içeriğine erişmek için doğrudan ayracın bulunduğu sayfa açılabilir.
Bir değişken tanımlandığında, bellekte ona bir yer ayrılır. İşaretçiler bu bellek alanının başlangıç adresini tutar. a tam sayı değişkeni tanımlandığında, atandığı adresin başlangıcından değişkenin türünün boyu kadar bellekte yer kaplar. Değişkene atanan değer, ayrılan bu bellek alanında tutulur.
Değişken adı Bellek Alanı Bellek Adresi C kodu --------------- - - int a = 5; a - 5 - - - --------------- 0x0000ffff
İşaretçi türünde bir pIa (pointer to integer a, a'yı gösteren bir tam sayı işaretçisi) değişkeni tanımlanır ve a değişkeninin adresi atanırsa, pIa a'nın adresini değer olarak tutar:
Değişken adı Bellek Alanı Bellek Adresi C kodu --------------- - - int* pIa = &a; pIa - 0x0000ffff - - - --------------- 0xfe371fde2
a değişkeninde yapılan her değişiklik, pIa işaretçi değişkenine görünür. İşaretçi kullanılarak a'nın değeri okunabilir veya değiştirilebilir.
Değişken adı Bellek Alanı Bellek Adresi C kodu --------------- - - *pIa = 23; a - 23 - - - --------------- 0x0000ffff
Türünden bağımsız olarak bir işaretçi değişkeninin değeri her zaman bir sayıdır (bir bellek adresi). İşaretçinin türü, tutulan adresteki verinin nasıl yorumlanacağını belirtir. Buna göre int* türündeki pIa, tuttuğu adresteki veriyi int olarak yorumlayacaktır.
Bu durumun bir istisnası void* dır. void* türündeki bir değişken, bir adres tutar fakat bu adresteki veriyi yorumlamaz, kullanıcının istediği türde cast kullanması beklenir.
İşaretçiler, dinamik bellek tahsisi, özyinelemeli veri yapısı gerçeklenimi, büyük boydaki veriye hızlı erişim, hafızada ardışık (sequential) tutulan verilerin iterasyonu, nesne yaşam süresi işlemleri, donanım adresine erişim gibi pek çok yerde karşımıza çıkar.
Dış bağlantılar
- PL/I List Processing Paper from the June, 1967 issue of CACM
- cdecl.org A tool to convert pointer declarations to plain English
- Over IQ.com A beginner level guide describing pointers in a plain English.
- Pointers and Memory Introduction to pointers – Stanford Computer Science Education Library
- Pointers in C programming 9 Haziran 2019 tarihinde Wayback Machine sitesinde arşivlendi. A visual model for the beginners in C programming
- 0pointer.de A terse list of minimum length source codes that dereference a null pointer in several different programming languages
- "The C book" – containing pointer examples in ANSI C
- Joint Technical Committee ISO/IEC JTC 1, Subcommittee SC 22, Working Group WG 14 (8 Eylül 2007). International Standard ISO/IEC 9899 (PDF). Committee Draft. .
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Programlama dillerinde isaretci bellek adresi tutmak icin tasarlanmis bir turdur Isaretciyi anlamada bir benzetim olarak kitap ayraci ornegi verilebilir Ayrac bir kitap sayfasina yerlestirilir burada sayfa numarasi bir bellek adresi ayrac ise bir isaretcidir Sayfa icerigine erismek icin dogrudan ayracin bulundugu sayfa acilabilir Bir degisken tanimlandiginda bellekte ona bir yer ayrilir Isaretciler bu bellek alaninin baslangic adresini tutar a tam sayi degiskeni tanimlandiginda atandigi adresin baslangicindan degiskenin turunun boyu kadar bellekte yer kaplar Degiskene atanan deger ayrilan bu bellek alaninda tutulur Degisken adi Bellek Alani Bellek Adresi C kodu int a 5 a 5 0x0000ffff Isaretci turunde bir pIa pointer to integer a a yi gosteren bir tam sayi isaretcisi degiskeni tanimlanir ve a degiskeninin adresi atanirsa pIa a nin adresini deger olarak tutar Degisken adi Bellek Alani Bellek Adresi C kodu int pIa amp a pIa 0x0000ffff 0xfe371fde2 a degiskeninde yapilan her degisiklik pIa isaretci degiskenine gorunur Isaretci kullanilarak a nin degeri okunabilir veya degistirilebilir Degisken adi Bellek Alani Bellek Adresi C kodu pIa 23 a 23 0x0000ffff Turunden bagimsiz olarak bir isaretci degiskeninin degeri her zaman bir sayidir bir bellek adresi Isaretcinin turu tutulan adresteki verinin nasil yorumlanacagini belirtir Buna gore int turundeki pIa tuttugu adresteki veriyi int olarak yorumlayacaktir Bu durumun bir istisnasi void dir void turundeki bir degisken bir adres tutar fakat bu adresteki veriyi yorumlamaz kullanicinin istedigi turde cast kullanmasi beklenir Isaretciler dinamik bellek tahsisi ozyinelemeli veri yapisi gerceklenimi buyuk boydaki veriye hizli erisim hafizada ardisik sequential tutulan verilerin iterasyonu nesne yasam suresi islemleri donanim adresine erisim gibi pek cok yerde karsimiza cikar Dis baglantilarPL I List Processing Paper from the June 1967 issue of CACM cdecl org A tool to convert pointer declarations to plain English Over IQ com A beginner level guide describing pointers in a plain English Pointers and Memory Introduction to pointers Stanford Computer Science Education Library Pointers in C programming 9 Haziran 2019 tarihinde Wayback Machine sitesinde arsivlendi A visual model for the beginners in C programming 0pointer de A terse list of minimum length source codes that dereference a null pointer in several different programming languages The C book containing pointer examples in ANSI C Joint Technical Committee ISO IEC JTC 1 Subcommittee SC 22 Working Group WG 14 8 Eylul 2007 International Standard ISO IEC 9899 PDF Committee Draft KB1 bakim Birden fazla ad yazar listesi link