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, pointer'ları iki ana yolla tanımlayabilirsiniz: bir pointer tipi ile var kullanarak veya := ile adres operatörünü 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ı, işaretçinin (pointer) x'in adresini sakladığını gösterir:

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

Bir işaretçiyi (pointer) := kullanarak tek bir satırda da tanımlayabilir ve başlatabilirsiniz:

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

Görev

Başlangıç

Bu meydan okumada, Go'da pointer (işaretçi) tanımlama ve kullanma pratiği yapacaksınız. Sizin için bir pointer zaten ayarlandı ve göreviniz aynı değeri işaret eden yeni bir pointer oluşturmaktır.

Mevcut pointer ile aynı bellek adresini işaret eden 'secondPointer' adında yeni bir pointer değişkeni tanımlamak için koddaki TODO kısmını tamamlayın.

Kopya kağıdı

Go'da, pointer'ları (işaretçileri) bir pointer tipiyle var kullanarak veya adres operatörünü := ile kullanarak tanımlayabilirsiniz.

var kullanarak bir pointer tanımlayın:

var x int = 42
var ptr *int    // Bir tamsayıya pointer tanımlayın
ptr = &x        // x'in adresini ptr'ye atayın

:= kullanarak tek satırda bir pointer tanımlayın ve başlatın:

y := 100
ptr := &y    // Pointer'ı tek adımda tanımlayın ve başlatın

Pointer değerlerine erişin:

  • ptr - bellek adresi
  • *ptr - o adresteki değer

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