第六章 go语言指针
Go 语言指针
Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。
接下来让我们来一步步学习 Go 语言指针。
我们都知道,变量是一种使用方便的占位符,用于引用计算机内存地址。
Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。
以下实例演示了变量在内存中地址:
package main
import "fmt"
func main() {
var a int = 10
fmt.Printf("变量的地址: %x\n", &a )
}
执行以上代码输出结果为:
![]()
什么是指针
一个指针变量指向了一个值的内存地址。
类似于变量和常量,在使用指针前你需要声明指针。指针声明格式如下:
var var_name *var-type
var-type 为指针类型,var_name 为指针变量名,* 号用于指定变量是作为一个指针。以下是有效的指针声明:
var ip *int /* 指向整型*/ var fp *float32 /* 指向浮点型 */
package main
import "fmt"
func main3() {
// var a int=111
//fmt.Println("变量",&a)
//1 声明实际变量
var name string ="2222"
var name1 *string // 声明指针变量
name1=&name //指针变量存储地址
fmt.Println("指针变量存储地址",name1)
fmt.Println("指针值",*name1)
fmt.Println("name 变量存储地址",&name)
fmt.Println("源值",name)
}
go语言为什么 结构在引用的时候前面加*
-
修改结构体字段值:在函数中,如果你想要修改传入的结构体的字段值,必须传递结构体的指针。否则,函数内部只是修改了结构体的拷贝,而不会影响原始结构体的值。
-
减少内存开销:如果结构体较大,通过传递指针而不是整个结构体本身,可以减少内存拷贝的开销。这对于性能和内存敏感的应用程序来说是非常重要的。

浙公网安备 33010602011771号