1、什么是指针
一个指针变量指向了一个值的内存地址。
类似于变量和常量,在使用指针前你需要声明指针。指针声明格式如下:
var var_name *var-type
var-type 为指针类型,var_name 为指针变量名,* 号用于指定变量是作为一个指针。以下是有效的指针声明:
var ip *int /* 指向整型*/ var fp *float32 /* 指向浮点型 */
2、注意
- 不同于c语言,go的指针不能参与运算
- go 只有值传递,没有引用传递
3、实例
package main import ( "fmt" ) //参数为指针类型 func swap (a,b *int) { *a ,*b = *b ,*a } func switchNum (a,b int) (int,int) { return b,a } func main () { // 指针修改变量值 var a = 5 var pa *int = &a *pa = 6 fmt.Println(a) // 只传递x,y的地址 x,y := 4,5 swap(&x,&y) fmt.Println(x,y) // 变量对调 c,d := 1,2 c,d = switchNum(c,d) fmt.Println(c,d) }