Golang中如何比较指针(解析和示例)

在Go编程语言或Golang中, 指针是一个变量, 用于存储另一个变量的内存地址。 Golang中的指针也称为特殊变量。变量用于在系统中的特定内存地址存储一些数据。始终以十六进制格式找到内存地址(以0x开头, 如0xFFAAF等)。
在Go语言中,你可以比较两个指针。只有当两个指针指向内存中的相同值或为nil时,它们的值才相等。你可以使用Go语言提供的==和!=操作符来对指针进行比较:
1. ==运算符:如果两个指针都指向同一变量, 则此运算符返回true。或如果两个指针都指向不同的变量, 则返回false。
语法如下:

pointer_1 == pointer_2

例子:
// Go program to illustrate the // concept of comparing two pointers package mainimport "fmt"func main() {val1 := 2345 val2 := 567// Creating and initializing pointers var p1 * int p1 = & val1 p2 := & val2 p3 := & val1// Comparing pointers // with each other // Using == operator res1 := & p1 == & p2 fmt.Println( "Is p1 pointer is equal to p2 pointer: " , res1)res2 := p1 == p2 fmt.Println( "Is p1 pointer is equal to p2 pointer: " , res2)res3 := p1 == p3 fmt.Println( "Is p1 pointer is equal to p3 pointer: " , res3)res4 := p2 == p3 fmt.Println( "Is p2 pointer is equal to p3 pointer: " , res4)res5 := & p3 == & p1 fmt.Println( "Is p3 pointer is equal to p1 pointer: " , res5) }

输出如下:
Is p1 pointer is equal to p2 pointer:false Is p1 pointer is equal to p2 pointer:false Is p1 pointer is equal to p3 pointer:true Is p2 pointer is equal to p3 pointer:false Is p3 pointer is equal to p1 pointer:false

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

例子:
// Go program to illustrate the // concept of comparing two pointers package mainimport "fmt"func main() {val1 := 2345 val2 := 567// Creating and initializing pointers var p1 * int p1 = & val1 p2 := & val2 p3 := & val1// Comparing pointers // with each other // Using != operator res1 := & p1 != & p2 fmt.Println( "Is p1 pointer not equal to p2 pointer: " , res1)res2 := p1 != p2 fmt.Println( "Is p1 pointer not equal to p2 pointer: " , res2)res3 := p1 != p3 fmt.Println( "Is p1 pointer not equal to p3 pointer: " , res3)res4 := p2 != p3 fmt.Println( "Is p2 pointer not equal to p3 pointer: " , res4)res5 := & p3 != & p1 fmt.Println( "Is p3 pointer not equal to p1 pointer: " , res5) }

【Golang中如何比较指针(解析和示例)】输出如下:
Is p1 pointer not equal to p2 pointer:true Is p1 pointer not equal to p2 pointer:true Is p1 pointer not equal to p3 pointer:false Is p2 pointer not equal to p3 pointer:true Is p3 pointer not equal to p1 pointer:true

    推荐阅读