//Go语言的基本类型有:    //bool   //string     //int、int8、int16、int32、int64     //uint、uint8、uint16、uint32、uint64、uintptr     //byte // uint8 的别名     //rune // int32 的别名 代表一个 Unicode 码     //float32、float64     //complex64、complex128         //整型和浮点型变量的默认值为 0 和 0.0。     //字符串变量的默认值为空字符串。     //布尔型变量默认为 bool。     //切片、函数、指针变量的默认为 nil。 #####################################################################################     //指针类型     var a int     a = 0     fmt.Println(&a) //0xc042008230  ######################################################################################   var a int     a = 10     var p *int     p = &a     fmt.Printf("变量a的地址:%x\n", &a) //变量a的地址:c042008190     fmt.Printf("指针类型p指向a地址的值:%x\n", p) //指针类型p指向a地址的值:c042008190     fmt.Printf("指针类型p获取指针变量的值: %d\n", *p) //指针p获取指针变量指向变量的值:10 ######################################################################################     var p *int     fmt.Println(p) //<nil>     fmt.Printf("p的值%x\n", p) //p的值0     if p != nil {         fmt.Println("非空")     } else {         fmt.Println("空")     } //空 ############################################################################################## package main import "fmt" func swap(a, b *int) {     a, b = b, a     fmt.Println(*a, *b)//20,10 } func main() {     a, b := 10, 20     fmt.Println(a, b) //10,20     swap(&a, &b)     fmt.Println(a, b) //10,20 } ############################################################################################### package main import "fmt" func swap(a, b *int) {     *a, *b = *b, *a     fmt.Println(*a, *b) //20,10 } func main() {     a, b := 10, 20     fmt.Println(a, b) //10,20     swap(&a, &b)     fmt.Println(a, b) //20,10 } ################################################################################################ func swap(a, b *int) (*int, *int) {     a, b = b, a     return a, b } func main() {     a, b := 10, 20     fmt.Println(a, b) //10,20     fmt.Println(&a, &b) //0xc042008190 0xc042008198     c, d := swap(&a, &b)     fmt.Println(*c, *d) //20,10     fmt.Println(&a, &b) //0xc042008190 0xc042008198     fmt.Println(*d) //10     a = *c     fmt.Println(*d) //20     b = *d     fmt.Println(a, b) //20,20 } ################################################################################################ func swap(a, b *int) (*int, *int) {     a, b = b, a     return a, b } func main() {     a, b := 10, 20     fmt.Println(a, b) //10,20     fmt.Println(&a, &b) //0xc042008190 0xc042008198     c, d := swap(&a, &b)     fmt.Println(*c, *d) //20,10     fmt.Println(&a, &b) //0xc042008190 0xc042008198     fmt.Println(*d) //10     //a = *c     fmt.Println(*d) //20     b = *d     fmt.Println(a, b) //10,10 } ################################################################################################