一、指针的概念
package main
import "fmt"
// 指针
func main() {
a := 10 // int类型
b := &a // *int类型 int指针
fmt.Println(a, &a) // 10 0xc0000100c0
fmt.Println(b) // 0xc0000100c0
// 变量b是一个int类型的指针 存储变量a的内存地址
c := *b // 根据内存地址取值
fmt.Println(c) // 10
}
二、指针传值示例
package main
import "fmt"
// 指针传值示例
func modify1(x int){
x = 100
}
func modify2(y *int){
*y = 100
}
func main() {
a := 1
modify1(a)
fmt.Println(a) // 1
modify2(&a)
fmt.Println(a) // 100
}
三、内存分配
package main
import "fmt"
func main() {
// new用于类型的内存分配 内存对应的值为类型零值 返回指向类型的指针
a := new(int)
fmt.Println(*a) // 0
*a = 100
fmt.Println(*a) // 100
// make只用于slice、map和channel的初始化 返回这三个引用类型本身
var b map[string]int
fmt.Println(b)
b = make(map[string]int, 10)
fmt.Println(b)
b["jiayuan"] = 100
fmt.Println(b)
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。