Golang指针简介
对于指针的简单理解。
指针
表示数据的内存地址
var name string = "chenkaixuan"
// 声明一个 字符串的指针类型 的变量,值为 name 对应的内存地址
var pointer *string = &name
// eg:
var age int = 18
var x *int = &age
总结 *x 取对应的值 18
应用场景
eg1:
package main
import "fmt"
func changeData(data string) {
data = "haha"
}
func main() {
name := "chenkaixuan"
//本质上会将name的值拷贝一份,并赋值给data
changeData(name)
fmt.Println(name)
}
package main
import "fmt"
func changeData(ptr *string) {
*ptr = "haha"
}
func main() {
name := "chenkaixuan"
changeData(&name)
fmt.Println(name)
}
eg2:
package main
import "fmt"
func main() {
var username string
fmt.Println("请输入用户名:")
fmt.Scanf("%s", &username)
if username == "chenkaixuan" {
fmt.Println("success")
} else {
fmt.Println("fail")
}
}