Turkish Golang Tutorial Guide #6 : Pointers
Hi everyone, this is a Turkish tutorial content about Golang (Go) programming language. It will be a contet serial abut this language. This post will be about pointers. So, thank you for reading!
- Check this : Turkish Golang Tutorial Guide #5 : Arrays
Pointers
source
Go'da pointerları ya da diğer adı ile işaretçileri öğrenmek kolay ve eğlencelidir. Bazı Go programlama görevleri işaretçiler kullanılarak gerçekleştirilir. Dolayısıyla, iyi bir Go programcısı olmak için işaretçileri öğrenmek gerekir aslında bu durum bir çok dil için geçerli. İşaretçiler veri yapılarını öğrenirken, veri yapıları ise veri tabanını öğrenirken bilinmesi gereken önemli konulardandır. Bildiğiniz gibi, her değişkenin bellekte bir konumu vardır ve her bellek konumu, veriyi bellekte bir adresi belirtecek şekilde konumlar. Bu konuma ampersand (&) operatörü kullanılarak erişilebilir.
Bu örnekte görüldüğü gibi bir a değişkeni tanımlayıp ona bir değer atadıktan sonra, adresini çağırdığımızda
Address of an utopian variable: c42000e1f8
şeklinde bir çıktı alırız programdan. Bu a değişkenin bellekte tanımlı olduğu spesifik adrestir. Yani bellek adresinin ne olduğunu ve ona nasıl erişileceğini anladın.
var var_name *var-type
var ip *int
Bir işaretçi tanımlayacağımız zaman bu şekilde yapıyoruz.
Bu örnekte ise işaretçilerin tanımlanama, değerleri ve onlara erişimi üzerine ufak bir pratik yapmış olacağız. Alacağımız çıktı ise:
Address of an utopian variable: c42000e1f8
Address stored in ip variable: c42000e1f8
Value of *ip variable: 20
İşaretçiler ve Diziler
Value of mods[0] = 10
Value of mods[1] = 100
Value of mods[2] = 200
Örnektende görüldüğü gibi önce bir dizi oluşturup ona elemanlar atadık sonra for döngüsünde bu elemanları teker teker işaretçiler ile çağırıp çıktı olarak sunduk. Yani işaretçiler bir integer veya string saklayabilir bellekte. Herhangi bir sınırlama yok.
Pointer'a Pointer Durumu
İşaretçiyi işaret eden işaretçi, işaretçi zinciri formudur. Normalde bir işaretçi bir değişken adresini içerir. Bir göstericiye bir işaretçi tanımladığımızda, ilk işaretçi aşağıda gösterildiği gibi gerçek değeri içeren bir konuma işaret eden ikinci işaretçinin adresini içerir. Biliyorum baya çorba oldu, her yer her yerde gibi ama örnek açıklayıcı olur umarım :)
Bu kodu çalıştırdığımızda alacağımız çıktı şöyle olacaktır:
Value of var = 3000
Value available at *ptr = 3000
Value available at **pptr = 3000
Bu gibi pointer'a pointer durumlarında dikkat edilmesi gereken durum pointer çağırırkken kullandığımız * operatörünü kaçıncı dereceden pointer çağırdığımıza göre tekrar etmektir.
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @monomyth I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x