Menu
Coddy logo textTech

포인터 변수 선언하기

Coddy GO 여정의 기초 섹션에 포함된 레슨 — 109개 중 61번째.

Go에서 포인터를 선언하는 방법은 크게 두 가지가 있습니다: var를 포인터 타입과 함께 사용하거나, :=와 함께 주소 연산자를 사용하는 것입니다.

포인터 타입을 가진 var를 사용하여 포인터를 선언합니다:

func main() {
    var x int = 42
    var ptr *int    // 정수에 대한 포인터를 선언합니다
    ptr = &x        // x의 주소를 ptr에 할당합니다
    
    fmt.Println("Value of x:", x)
    fmt.Println("Value of ptr:", ptr)
    fmt.Println("Value at ptr:", *ptr)
}

출력 결과는 포인터가 x의 주소를 저장하고 있음을 보여줍니다:

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

또한 :=를 사용하여 한 줄로 포인터를 선언하고 초기화할 수 있습니다:

y := 100
ptr := &y    // 한 단계로 포인터를 선언하고 초기화합니다
challenge icon

챌린지

초급

이 챌린지에서는 Go에서 포인터를 선언하고 사용하는 연습을 합니다. 포인터가 이미 설정되어 있으며, 여러분의 작업은 동일한 값을 가리키는 새 포인터를 만드는 것입니다.

코드의 TODO를 완료하여 기존 포인터와 동일한 메모리 주소를 가리키는 'secondPointer'라는 이름의 새 포인터 변수를 선언하세요.

치트 시트

Go에서, 포인터 타입을 사용하는 var를 이용하거나 주소 연산자와 함께 :=를 사용하여 포인터를 선언할 수 있습니다.

var를 사용하여 포인터 선언하기:

var x int = 42
var ptr *int    // 정수형 포인터 선언
ptr = &x        // x의 주소를 ptr에 할당

:=를 사용하여 한 줄에서 포인터를 선언하고 초기화하기:

y := 100
ptr := &y    // 한 단계로 포인터 선언 및 초기화

포인터 값에 접근하기:

  • ptr - 메모리 주소
  • *ptr - 해당 주소의 값

직접 해보기

package main

import "fmt"

func main() {
	// 여기에 변수와 그 변수를 가리키는 포인터가 있습니다
	originalValue := 42
	pointerToValue := &originalValue
	
	// TODO: 'pointerToValue'와 동일한 메모리 주소를 가리키는
	// 'secondPointer'라는 이름의 새로운 포인터 변수를 선언하세요
	
	
	// 아래 코드는 수정하지 마세요
	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)
	
	// 원본 값을 변경하고 모든 포인터에 변경 사항이 반영되는지 확인해 봅시다
	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 icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨