Golang 您所在的位置:网站首页 指向字符指针的指针称为什么 Golang

Golang

2023-06-21 07:53| 来源: 网络整理| 查看: 265

Golang - 指针 原创

wx6490252e8ddc6 2023-06-20 10:54:22 博主文章分类:Go ©著作权

文章标签 值类型 取值 赋值 文章分类 Html/CSS 前端开发

©著作权归作者所有:来自51CTO博客作者wx6490252e8ddc6的原创作品,请联系作者获取转载授权,否则将追究法律责任

文章目录指针定义取值指针的应用new 和 make

指针定义地址就是内存地址指针包含类型指针可以做逻辑判断与 c 语言不同, go 语言中, 指针不可操作package main import "fmt" func main() { // 值类型 aa := "Tim" // 指针类型 bb := []int{1, 2, 3} // 值类型 fmt.Printf("%v %[1]T %[1]p\n", aa) // Tim string %!p(string=Tim) // 值: Tim // 类型: string // 指针: 无, %!p(string=Tim) // 值类型指针 fmt.Printf("%v %[1]T %[1]p\n", &aa) // 值: 0xc000010200 - ① // 类型: *string // 指针: 0xc000010200 - ② // ① 和 ② 是相同的 // 指针类型 fmt.Printf("%v %[1]T %[1]p\n", bb) // Tim string %!p(string=Tim) // 值: [1 2 3] // 类型: []int // 指针: 0xc0000b6020 - ① // 值类型指针 fmt.Printf("%v %[1]T %[1]p\n", &bb) // 值: &[1 2 3] // 类型: *[]int // 指针: 0xc0000a6020 - ② // ① 和 ② 是相同的 }取值&: 值取指针*: 指针取值package main import "fmt" // 定义函数时, *int 代表 int 类型的指针 func aa(x *int) { fmt.Println(*x) } func main() { // 根据值的信息取指针 a := 10 fmt.Println(&a) // 0xc0000b4008 aa(&a) // 10 // 根据指针的信息取值 b := &a fmt.Println(*b) // 10 }指针的应用package main // 修改数组(值类型) import "fmt" func changeArray1(a1 [3]int) { // 将 a1 的元素修改 a1[0] = 100 } func changeArray2(a1 *[3]int) { // 语法糖 a1[0] = 100 // 完全写法: (*a1)[0] = 100 } func main() { // 指针的应用 a := [3]int{1, 2, 3} changeArray1(a) // 相当于在函数中复制了数组, 赋值给了a1 fmt.Println(a) // [1 2 3] changeArray2(&a) fmt.Println(a) // [100 2 3] }new 和 makepackage main import "fmt" func main() { // new 初始化"值类型"指针 a := new([3]int) // 得到一个 [3]int 类型的指针 fmt.Printf("%v, %[1]T\n", a) // 根据指针赋值 a[2] = 1 fmt.Printf("%v\n", *a) // make 初始化引用类型的指针, slice, map, channel b := make([]int, 0, 8) fmt.Println(b) }

收藏 评论 分享 举报

上一篇:爬虫学习笔记 - day02

下一篇:Golang - 自定义类型和类型别名



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有