zoukankan      html  css  js  c++  java
  • Go语言学习笔记十四--一文搞懂Go语言指针

    运行代码观察现象:

     1 package main
     2 
     3 import "fmt"
     4 
     5 func change(num *int32) {
     6     *num += 100
     7 }
     8 
     9 func main() {
    10     var a int32
    11     a = 100
    12     fmt.Printf("a的值为:%d
    ", a)
    13     //用%p 来输出内存地址 用&符号取a的地址 这一点和C语言一样
    14     fmt.Printf("a的地址为%p
    ", &a)
    15 
    16     //这个p是引用类型 其实就是一个指针 和C语言里面的指针异曲同工
    17     //使用方式和C语言一模一样
    18     var p *int32
    19     p = &a
    20     fmt.Printf("p所保存的地址为%p
    ", p)
    21     fmt.Printf("p所指的变量的值为为%d
    ", *p)
    22 
    23     *p = 150
    24     fmt.Printf("指针修改后 p所指的变量的值为为%d
    ", *p)
    25     fmt.Printf("指针修改后 a的值为:%d
    ", a)
    26 
    27 
    28     //%T 表示输出其类型
    29     fmt.Printf("p的类型为%T
    ", p)
    30     fmt.Printf("a的类型为%T
    ", a)
    31 
    32     //通过指针和函数修改变量的值
    33     change(p)
    34     fmt.Printf("指针函数修改后 p所指的变量的值为为%d
    ", *p)
    35     fmt.Printf("指针函数修改后 a的值为:%d
    ", a)
    36 
    37     //修改数组就传数组的指针 同理
    38     //注意 切片是引用类型,切片也是指针只是是一个特殊的指针
    39      
    40 }
    输出结果:
    a的值为:100 a的地址为0xc000092000 p所保存的地址为0xc000092000 p所指的变量的值为为100 指针修改后 p所指的变量的值为为150 指针修改后 a的值为:150 p的类型为*int32 a的类型为int32 指针函数修改后 p所指的变量的值为为250 指针函数修改后 a的值为:250

    make和new的区别:

  • 相关阅读:
    关于LINUX文件与目录的问题说明
    poj1094拓扑排序
    poj3026(bfs+prim)最小生成树
    快速幂
    hdu4255筛素数+广搜
    网易2012校园招聘笔试题目
    网新恒天2011.9.21招聘会笔试题
    HDU3344(小广搜+小暴力
    HDU3348(贪心求硬币数
    HDU3345广搜 (P,E,T,#)
  • 原文地址:https://www.cnblogs.com/xwxz/p/13323156.html
Copyright © 2011-2022 走看看