Menu
Coddy logo textTech

İşaretçi Değişkenlerini Tanımlama

Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası. Ders 61 / 109.

Go'da işaretçileri iki ana şekilde tanımlayabilirsiniz: işaretçi türüyle var kullanarak veya adres operatörünü := ile kullanarak.

Bir işaretçi türü ile var kullanarak bir işaretçi tanımlayın:

func main() {
    var x int = 42
    var ptr *int    // Bir tam sayıya işaretçi tanımla
    ptr = &x        // x'in adresini ptr'ye ata
    
    fmt.Println("Value of x:", x)
    fmt.Println("Value of ptr:", ptr)
    fmt.Println("Value at ptr:", *ptr)
}

Çıktı, pointer'ın x adresini depoladığını gösterir:

Value of x: 42
Value of ptr: 0xc000018030
Value at ptr: 42

Ayrıca := kullanarak bir işaretçiyi tek satırda tanımlayıp başlatabilirsin:

y := 100
ptr := &y    // İşaretçiyi tek adımda bildir ve başlat
challenge icon

Görev

Başlangıç

Bu görevde, Go dilinde işaretçileri tanımlama ve kullanma pratiği yapacaksın. Senin için bir işaretçi zaten hazırlandı ve görevin aynı değeri gösteren yeni bir işaretçi oluşturmaktır.

Mevcut işaretçiyle aynı bellek adresini gösteren, 'secondPointer' adlı yeni bir işaretçi değişkeni tanımlamak için koddaki TODO'yu tamamla.

Kendin dene

package main

import "fmt"

func main() {
	// İşte bir değişken ve ona işaret eden bir işaretçi (pointer)
	originalValue := 42
	pointerToValue := &originalValue
	
	// TODO: 'pointerToValue' ile aynı bellek adresini işaret eden
	// 'secondPointer' adında yeni bir işaretçi değişkeni tanımlayın
	
	
	// Aşağıdaki kodu değiştirmeyin
	fmt.Printf("Original value: %v\n", originalValue)
	fmt.Printf("Value through first pointer: %v\n", *pointerToValue)
	fmt.Printf("Value through second pointer: %v\n", *secondPointer)
	
	// Orijinal değeri değiştirelim ve tüm işaretçilerin değişikliği yansıttığını görelim
	originalValue = 100
	fmt.Printf("\nAfter changing original value to 100:\n")
	fmt.Printf("Original value: %v\n", originalValue)
	fmt.Printf("Value through first pointer: %v\n", *pointerToValue)
	fmt.Printf("Value through second pointer: %v\n", *secondPointer)
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi