go 语言指针

1.什么是指针?

   众所周知变量是一种使用方便的占位符,用于引用计算机内存地址。普通变量存的就是值,也叫值类型。

   指针是一个变量,其值是另一个变量的地址,即存储器位置的直接地址。一个指针变量可以指向任何一个值的内存地址。

2.指针定义

  

var var_name *var-type  :var_name 变量名字   * 号用于指定变量是作为一个特定类型的指针

定义声明:

  var ip  * int  /指向整型

  var float *float /指向浮点型

3.取地址符

  取地址符&

 

package main

import(
	"fmt"
)
func main(){
	var i int   //定义整型变量i
	var p *int //定义整型指针变量p
	p = &i   //把变量i的内存地址赋值给P
	fmt.Printf("变量i的内存地址:%p\n",&i)
	fmt.Printf("指针变量p的值:%p\n",p)
	fmt.Printf("指针变量p的内存地址:%p\n",&p)
}
//运行结果:
变量i的内存地址:0xc04200e090
指针变量p的值:0xc04200e090
指针变量p的内存地址:0xc042004028

  上面输入结果可以看出指针变量p的值是变量i的内存地址

4.获取指针变量指向的变量

 获取指针变量指向的变量:*
package main

import(
	"fmt"
)
func main(){
	var i int
	var p *int
	p = &i
	i = 100
	fmt.Printf("%d\n",i)
	fmt.Printf("%d\n",*p)
	*p = 200	
	fmt.Printf("%d\n",i)
	fmt.Printf("%d\n",*p)
}
//运行结果:
100
100
200
200

5.指针是引用型的

package main

import(
	"fmt"
)
func change(p *int){
	*p = 200
}
func main(){
	var i int
	var p *int
	p = &i
	i = 100
	fmt.Printf("change之前i的值:%d\n",i)
	change(p)
	fmt.Printf("change之后i的值:%d\n",i)
}
//运行结果
change之前i的值:100
change之后i的值:200

  



posted @ 2018-01-03 13:33  whj999  阅读(138)  评论(0编辑  收藏  举报