最简单的代码
package main
import "fmt"
func main() {
var a int = 114514
fmt.Printf("变量地址:%x\n", &a)
}
什么是指针
一个指针变量指向了一个值的内存地址。 类似于变量和常量,在使用指针前你需要声明指针。指针声明格式如下:
var var_name *var-type
var-type 为指针类型,var_name 为指针变量名,* 号用于指定变量是作为一个指针。以下是有效的指针声明:
var ip *int /* 指向整型*/
var fp *float32 /* 指向浮点型 */
本例中这是一个指向 int 和 float32 的指针。
如何使用指针
指针使用流程:
- 定义指针变量。
- 为指针变量赋值。
- 访问指针变量中指向地址的值。
package main
import "fmt"
func main() {
var a int = 114514
var ip *int
ip = &a
fmt.Println(a)
fmt.Println(ip)
}
跟C语言差不多
当谈到 Go 语言中的指针时,我们需要理解指针的概念以及在 Go 语言中如何使用它们。指针是一种特殊的变量类型,它存储了一个变量的内存地址。使用指针可以通过引用和修改内存地址来操作变量。下面是一些关于 Go 语言指针的重要概念和用法的笔记。
定义指针变量:
在 Go 语言中,可以使用 * 符号来声明一个指针变量。例如,var ptr *int 声明了一个指向整数类型的指针变量 ptr。指针变量存储了某个变量的内存地址。
获取变量的地址:
要获取变量的地址,可以使用 & 符号。例如,var num int = 42 和 ptr := &num,其中 ptr 存储了 num 的地址。
ptr := new(int)
*ptr = 42
fmt.Println(*ptr) // 输出 42
除此之外还有指针的安全性,我个人是做企业/政府以及一些涉密单位的安全,这块的话,指针的安全性: 相对于其他一些编程语言,Go 语言中的指针使用更为安全。它不支持指针运算和直接访问内存地址。Go 语言具有垃圾回收机制,可以自动处理不再使用的内存,从而避免了许多常见的指针错误。
指针是一项强大而灵活的功能,可以用于在 Go 语言中实现更高级的数据结构和算法。理解指针的概念,并熟练地使用它们,