首页 > 其他 > 详细

go中指针类型的用法小结

时间:2019-12-10 12:33:35      阅读:57      评论:0      收藏:0      [点我收藏+]
代码
// 指针的用法
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中指针类型的用法小结

原文:https://www.cnblogs.com/goujian/p/12015862.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!