20_指针类型的使用

1、指针是存储值的地方

2、指针的值是一个变量的地址。一个指针指示值所保存的位置,不是所有的值都有地址,但是所有的变量都有地址。

3、使用指针,可以在无需知道变量名字的情况下,间接读取或更新变量的值

4、如果一个变量声明为 var x int,表达式&x(x的地址)获取一个指向整型变量的指针,他的类型是整型指针(×int ),如果值叫做p,我们说p 指向x,或者p包含x的地址。

5、每一个聚合类型变量的组成(结构体、数组等元素)都是变量,所以也有一个地址

6、指针类型的零值是nil,两个指针当且仅当指向同一个变量或者都是nil的情况下才相等

例如:

package main

import "fmt"

//引用传递交换两个数值
func swap(a *int, b *int) {
	*a, *b = *b, *a
}

func main() {
	var p *int //*int62是整型指针类型
	j := 3
	p = &j
	fmt.Printf("j=%d
", *p)

//var q int
//*q = 22//invalid memory address ,指针没有分配地址(报错)

	//可以用new来给指针分配地址
	i := new(int) //虽然初始值也是nil但是分配了地址,相当于动态分配地址空间
	*i = 33
	fmt.Println("i=", *i)

	//引用传递交换两个数的值
	a := 2
	b := 3
	swap(&a, &b)
	fmt.Printf("a=%d,b=%d", a, b)

}

运行结果:

                                     

每天的价值就是不停息的前进!!!
原文地址:https://www.cnblogs.com/zhaopp/p/11439629.html