在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
推荐阅读
- 如何使用pipe()系统调用(用法示例)
- 小黑马xp简体中文版最新系统推荐
- 深度系统win7纯净版64最新系统推荐
- 雨林木风win7系统32位最新系统推荐
- 雨林风木win7ghost最新系统推荐
- 雨林木风纯净版windows7最新系统推荐
- windows10纯净版雨林木风最新系统推荐
- 雨林木风win7 64位旗舰贺岁版最新系统推荐
- 制作xp安装u盘制作详细说明