zoukankan      html  css  js  c++  java
  • go的指针学习

    1)指针是什么?

    一个指针变量可以指向任何一个值的内存地址它指向那个值的内存地址

    说白了就是可以先存储内存的地址,在用内存地址找到对应值

    2)go中的使用

    Go 语言的取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址。

    Go 语言的取值得地址符是 *,放到一个地址前使用就会返回相应内存对应的值。

    package main
    
    import "fmt"
    
    func main() {
    	var a int = 10
    
    	fmt.Printf("变量的地址: %x
    ", &a)
    }
    

    3)指针也可以声明类型

    var ip *int        /* 指向整型*/
    var fp *float32    /* 指向浮点型 */
    

    4)根据内存地址获取值

    package main
    
    import "fmt"
    
    func main() {
    	var a int = 2000
    	var ip *int /* 声明指针变量 */
    	ip = &a     /* 指针变量的存储地址 */
    	fmt.Printf("变量的地址: %x
    ", &a)
    	fmt.Printf("根据地址获取值为: %d
    ", *ip) //注意为%d整型
    }
    

    5)go的空指针,一个指针变量通常缩写为 ptr。

    if(ptr != nil)     /* ptr 不是空指针 */
    if(ptr == nil)    /* ptr 是空指针 */
    

     6)指针数组,原理类似

    package main
    
    import "fmt"
    
    const MAX int = 3
    
    func main() {
       a := []int{10,100,200}
       var i int
       var ptr [MAX]*int;
    
       for  i = 0; i < MAX; i++ {
          ptr[i] = &a[i] /* 整数地址赋值给指针数组 */
       }
    
       for  i = 0; i < MAX; i++ {
          fmt.Printf("a[%d] = %d
    ", i,*ptr[i] )
       }
    }

      输出结果

    a[0] = 10
    a[1] = 100
    a[2] = 200
    

      

  • 相关阅读:
    PHP之get请求用php脚本实现
    PHP之download
    PHP之缩略图
    PHP之upload
    文本域<textarea>将 替换成换行
    JSON中获取变量key的值
    emap表格checkbox属性默认勾选
    读取ORACLE数据库中BOLB形式数据在前端预览
    oracle常用语法
    批量删除本地仓库未下载完成的jar文件
  • 原文地址:https://www.cnblogs.com/songjl/p/7596046.html
Copyright © 2011-2022 走看看