go中指针类型的用法小结

代码
// 指针的用法
package main import (
"fmt"
) func main() {
var i int = 100
// 输出i的地址
fmt.Printf("i的地址为%v\n", &i) // i的地址为0xc000014088
// %p与&i,可正常输出,%p无取址功能
fmt.Printf("i的地址为%p\n", &i) // i的地址为0xc000014088
// %p与i,看出输出格式有误,不能输出正确的地址
fmt.Printf("i的地址为%p\n", i) // i的地址为%!p(int=100) // 定义指针变量ptr,类型是*int,值为i的地址
var ptr *int = &i
fmt.Printf("ptr的值为%v\n", ptr) // ptr的值为0xc000014088
// 获取指针类型变量ptr指向的值,用*
fmt.Printf("ptr存的地址指向的变量的值为%d\n", *ptr) // ptr存的地址指向的变量的值为100
// 输出ptr自身的地址
fmt.Printf("ptr的地址为%v\n", &ptr) // ptr的地址为0xc000098020 // 语法错误,不能用"*ptr2"这种形式的变量名
// var *ptr2 int = 200
// fmt.Printf("ptr2的值为%v\n", ptr2) // line24 syntax error: unexpected *, expecting name // 示例
n := 150
ptr3 := &n
*ptr3 = 300
fmt.Printf("n = %v\n", n) // n = 300
}

指针类型变量在内存中的分配简图如下

go中指针类型的用法小结

总结

go中指针类型的用法小结

查看源代码

欢迎访问我的个人站点:瑾年笔记
上一篇:Android中的时间日期选择器


下一篇:Codeforces Round #369 (Div. 2) C. Coloring Trees 动态规划