Logo

dev-resources.site

for different kinds of informations.

Golang 101: İşaretçiler (Pointers)

Published at
10/20/2021
Categories
go
pointers
Author
yakar
Categories
2 categories in total
go
open
pointers
open
Author
5 person written this
yakar
open
Golang 101: İşaretçiler (Pointers)

Değişkenler hafıza da (memory) "değişken adresi" ve "değeri" şeklinde tutulurlar. Bir değişkenin değerini değiştirmek istediğimizde hafıza da o değişkenin adresine gider ve değerini değiştiririz.

İşaretçiler ise hafızadaki değişkenin adresini almak veya bu adresteki değeri değiştirebilmemiz için kullanılmaktadır.

package main

import "fmt"

func main() {

    i := 1
    fmt.Println(i)

    islem(i)
    fmt.Println(i)

    islemptr(&i)
    fmt.Println(i)

    fmt.Println(&i)

}

func islem(deger int) {
    deger = 0
}

func islemptr(deger *int) {
    *deger = 0
}
Enter fullscreen mode Exit fullscreen mode
1
1
0
0xc000126000
Enter fullscreen mode Exit fullscreen mode

çalıştır!

Örnekte görüldüğü üzere i değişkenine değer atanıp ekrana yazdırılıyor.

func islem(deger int) {
    deger = 0
}
Enter fullscreen mode Exit fullscreen mode

Fonksiyonlar da girdi için kullanılan parametreler aslında girilen değerin hafıza da yeniden oluşturulmasını sağlar. Yani örnekte deger adında yeni bir değişken oluşturup buna fonksiyon içerisinde atama yapmaktadır. Bu durumda fonksiyon dışındaki i değişkenine bir etkisi olamamıştır.

func islemptr(deger *int) {
    *deger = 0
}
Enter fullscreen mode Exit fullscreen mode

Bu fonksiyonda ise int değer bulunduran hafıza adresi alacağını *int türü ile belirtiyoruz. Fonksiyonu çalıştırırken ise işaretçimiz (pointer) i değişkeninin adresini & sembolü ile fonksiyona giriyor. Ardından fonksiyon içerisinde * sembolü ile de ilgili adresin değerini değiştireceğimiz belirtilmiş oluyor.

Yani değişkenin adresini & sembolü ile, değişken adresindeki değerini * sembolü ile belirtiyoruz.

pointers Article's
30 articles in total
Favicon
CS50 - Week 4
Favicon
Pointers in Modern C
Favicon
Go: Pointers & Memory Management
Favicon
Pointers and Arrays
Favicon
Understanding Memory Management, Pointers, and Function Pointers in C
Favicon
Pointers : what are they pointing to?
Favicon
Pointers in Go Programming Language
Favicon
An ode to Stacks and Pointers in Go!
Favicon
The Absolute Minimum Every Software Developer Must Know About Pointers
Favicon
Pointers in C programming.
Favicon
How constant is const in C?
Favicon
Pointers in C Programming: How Hard?🤔
Favicon
In C++, is a free function taking a struct as an argument faster than a class with a member function to do the same thing?
Favicon
How to assign an Address, contained inside a string, to a pointer in C
Favicon
Understanding pointers in Go
Favicon
Reversing a Linked List: A Hallway Analogy
Favicon
Exploring the Power of Pointers in C Programming
Favicon
Learn It Once: “Golang Pointers are Powerful”
Favicon
C++23: std::out_ptr and std::inout_ptr
Favicon
Pointers , Arrays & Strings in C
Favicon
C - Even more pointers, arrays and strings
Favicon
C - Pointers, arrays and strings
Favicon
A common pitfall when using sizeof() with pointers
Favicon
Pointers
Favicon
Storing references of pointers in containers in C++
Favicon
C++ basics: Pointers vs iterators
Favicon
I broke production 3 times in 3 weeks - Part II
Favicon
WTF*&n is Pointers in Golang (Bahasa Version)
Favicon
I broke production 3 times in 3 weeks - Part I
Favicon
Golang 101: İşaretçiler (Pointers)

Featured ones: