39

Go语言中的指针和new(T)函数的使用

 5 years ago
source link: https://studygolang.com/articles/15223?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Go中指针的特点:

1)指针是一个代表着某个内存地址的值。

2)这个内存地址往往是在内存中存储的另一个变量的值的起始位置。

3)Go 语言对指针的支持介于 Java 语言和 C/C++ 语言之间,它既没有想 Java 语言那样取消了代码对指针的直接操作的能力,也避免了 C/C++ 语言中由于对指针的滥用而造成的安全和可靠性问题。

Go中指针的基本操作:

Go 语言 虽然保留了指针,但与其它编程语言不同的是

默认值 nil ,没有 NULL 常量

操作符 "&" 取变量地址, "*" 通过 指针访问 标对象

持指针运算,不 " -> " 运算符,直接⽤ "." 访问 目标 成员

new函数

表达式new(T)将创建一个T类型的匿名变量,所做的是为T类型的新值分配并清零一块内存空间,

然后将这块内存空间的地址作为结果返回,而这个结果就是指向这个新的T类型值的指针值,

返回的指针类型为*T。

我们只需使用 new() 函数,无需担心其内存的生命周期或怎样将其删除,因为 Go 语言的内存管理系统会帮我们打理一切。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK