day02 Go 指针和参数传递

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)

	}

  

猜你喜欢

转载自www.cnblogs.com/fanghongbo/p/9813408.html
今日推荐