阅读 236

Go 语言指针比较

在Go语言中,允许比较两个指针。两个指针值只有在它们指向内存中的相同值或者它们是nil时才相等。您可以在Go语言提供的==和!=运算符的帮助下对指针进行比较:

1. == 运算符:如果两个指针都指向同一个变量,则此运算符返回true。或如果两个指针都指向不同的变量,则返回false。

语法:

pointer_1 == pointer_2

示例

package mainimport "fmt"func main() {

    val1 := 2345    val2 := 567    //创建和初始化指针    var p1 *int    p1 = &val1
    p2 := &val2
    p3 := &val1

    //使用==运算符比较指针    res1 := &p1 == &p2
    fmt.Println("p1指针是否等于p2指针: ", res1)

    res2 := p1 == p2
    fmt.Println("p1指针是否等于p2指针: ", res2)

    res3 := p1 == p3
    fmt.Println("p1指针是否等于p3指针: ", res3)

    res4 := p2 == p3
    fmt.Println("p2指针是否等于p3指针: ", res4)

    res5 := &p3 == &p1
    fmt.Println("p3指针是否等于p1指针: ", res5)
}

输出:

p1指针是否等于p2指针:  falsep1指针是否等于p2指针:  falsep1指针是否等于p3指针:  truep2指针是否等于p3指针:  falsep3指针是否等于p1指针:  false

2.!= 运算符:如果两个指针都指向同一个变量,则此运算符返回false。或如果两个指针都指向不同的变量,则返回true。

语法:

pointer_1 != pointer_2

示例

package mainimport "fmt"func main() {

    val1 := 2345    val2 := 567    //创建和初始化指针    var p1 *int    p1 = &val1
    p2 := &val2
    p3 := &val1

    // 使用 != 运算符比较指针    res1 := &p1 != &p2
    fmt.Println("p1指针不等于p2指针吗: ", res1)

    res2 := p1 != p2
    fmt.Println("p1指针不等于p2指针吗: ", res2)

    res3 := p1 != p3
    fmt.Println("p1指针不等于p3指针吗: ", res3)

    res4 := p2 != p3
    fmt.Println("p2指针不等于p3指针吗: ", res4)

    res5 := &p3 != &p1
    fmt.Println("p3指针不等于p1指针吗: ", res5)
}

输出:

p1指针不等于p2指针吗:  true
p1指针不等于p2指针吗:  true
p1指针不等于p3指针吗:  false
p2指针不等于p3指针吗:  true
p3指针不等于p1指针吗:  true


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐