1. 程式人生 > >day02 Go 指標和引數傳遞

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)

	}