首页 技术 正文
技术 2022年11月20日
0 收藏 605 点赞 4,062 浏览 1119 个字

目录

指针

指针是一种存储变量内存地址(Memory Address)的变量。

1 取一个变量的地址:&  取地址符号
2 在非指针类型前面加*,表示指向这个类型的指针
3 在指针变量前加*,表示解引用(反解),取该指针指向的值

一、指针的声明

var a = 10
// 取地址,生成指针
var pointer = &a
fmt.Println(pointer) // 0xc00000a0c8
// 指针类型为 *+普通类型
fmt.Printf("%T",pointer) // *int

二、指针的默认值(Zero Value)

是 nil。

因为指针也是引用类型。

var b *int
fmt.Println(b)
// <nil>

三、指针的解引用

在指针变量前加*,表示解引用(反解),取该指针指向的值。

var a = 10
var pointer = &a
// 解引用
fmt.Println(*pointer) // 10

四、向函数传递指针参数

1、非 数组/切片 指针传参

var b =156
fmt.Println(b) // 156
f1(&b) // 100
fmt.Println(b) // 100func f1(x *int) {
*x=100
fmt.Println(*x) // 100
}

2、数组/切片 指针传参

不推荐向函数传递数组的指针,而应该使用切片。

因为切片的长度是不固定的,可以随意变化其引用的数组的长度;而如果是数组的指针,那长度就是固定的,无法变换类型了。

var c =[3]int{1,2,3}
fmt.Println(c) // [1 2 3]
f3(c[:])
fmt.Println(c) // [100 2 3]func f3(x []int) {
x[0]=100
fmt.Println(x) // [100 2 3]
}// 不过硬要传数组的指针也可以
var c =[3]int{1,2,3}
fmt.Println(c) // [1 2 3]
f2(&c)
fmt.Println(c) // [100 2 3]func f2(x *[3]int) {
x[0]=100 //支持指针直接操作,自动反解,自动解引用
//(*x)[1] = 222 //正统写法
fmt.Println(*x) // [100 2 3]
fmt.Println(x) // &[100 2 3] //指向数组的指针,就这样
}

五、Go不支持指针运算

Go 并不支持其他语言(例如 C)中的指针运算。

b := [...]int{109, 110, 111}
p := &b
p++

上面的程序会抛出编译错误:main.go:6: invalid operation: p++ (non-numeric type \*[3]int)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,074
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,551
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,399
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,811
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,892