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")
	}
}