English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 기본 강의

Golang 제어문

Golang 함수 & 메서드

Golang 구조체

Golang 슬라이스 & 배열

Golang 문자열(String)

Golang 포인터

Golang 인터페이스

Golang 동기

Golang 예외(Error)

Golang 다른Misc

Go 언어 포인터 비교

Go 언어에서 두 포인터를 비교할 수 있습니다. 두 포인터 값은内存에서 동일한 값이나 nil이면만 같습니다. Go 언어가 제공하는 ==와 != 연산자를 사용하여 포인터를 비교할 수 있습니다:

1. == 연산자:두 포인터가 동일한 변수를 가리키면 이 연산자는 true를 반환합니다. 또는 두 포인터가 다른 변수를 가리키면 false를 반환합니다.

문법:

pointer_1 == pointer_2
package main
import "fmt"
func main() {
    val1 := 2345
    val2 := 567
    //포인터 생성 및 초기화
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
    //== 연산자를 사용하여 포인터를 비교
    res1 := &p1 == &p2
    fmt.Println("p1포인터가 p인가요?2포인터: ", res1)
    res2 := p1 == p2
    fmt.Println("p1포인터가 p인가요?2포인터: ", res2)
    res3 := p1 == p3
    fmt.Println("p1포인터가 p인가요?3포인터: ", res3)
    res4 := p2 == p3
    fmt.Println("p2포인터가 p인가요?3포인터: ", res4)
    res5 := &p3 == &p1
    fmt.Println("p3포인터가 p인가요?1포인터: ", res5)
}

출력:

p1포인터가 p인가요?2포인터: false
p1포인터가 p인가요?2포인터: false
p1포인터가 p인가요?3포인터: true
p2포인터가 p인가요?3포인터: false
p3포인터가 p인가요?1포인터: false

2.!= 연산자:두 포인터가 동일한 변수를 가리키면 이 연산자는 false를 반환합니다. 또는 두 포인터가 다른 변수를 가리키면 true를 반환합니다.

문법:

pointer_1 != pointer_2
package main
import "fmt"
func main() {
    val1 := 2345
    val2 := 567
    //포인터 생성 및 초기화
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
    // 포인터를 비교하는 != 연산자 사용
    res1 := &p1 != &p2
    fmt.Println("p1포인터는 p와 같지 않습니다2포인터인가요? "", res1)
    res2 := p1 != p2
    fmt.Println("p1포인터는 p와 같지 않습니다2포인터인가요? "", res2)
    res3 := p1 != p3
    fmt.Println("p1포인터는 p와 같지 않습니다3포인터인가요? "", res3)
    res4 := p2 != p3
    fmt.Println("p2포인터는 p와 같지 않습니다3포인터인가요? "", res4)
    res5 := &p3 != &p1
    fmt.Println("p3포인터는 p와 같지 않습니다1포인터인가요? "", res5)
}

출력:

p1포인터는 p와 같지 않습니다2포인터인가요?  true
p1포인터는 p와 같지 않습니다2포인터인가요?  true
p1포인터는 p와 같지 않습니다3포인터인가요? false
p2포인터는 p와 같지 않습니다3포인터인가요?  true
p3포인터는 p와 같지 않습니다1포인터인가요?  true