zoukankan      html  css  js  c++  java
  • go-指针

    指针

    指针:带类型

    类型指针,允许对这个指针类型的数据进行修改,传递数据可以直接使用指针,而无须拷贝数据,类型指针不能进行偏移和运算。

    地址:内存地址,字节描述的内存地址

    '&':表示取内存地址操作

    ptr := &v // v 的类型为 T

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        var cat int = 1
        var str string = "banana"
        fmt.Printf("%p %p", &cat, &str)
    }
    
    从指针获取指针指向的值

    当使用&操作符对普通变量进行取地址操作并得到变量的指针后,可以对指针使用*操作符,也就是指针取值

    func main() {
    
        // 准备一个字符串类型
        var house = "Malibu Point 10880, 90265"
    
        // 对字符串取地址, ptr类型为*string
        ptr := &house
    
        // 打印ptr的类型
        fmt.Printf("ptr type: %T
    ", ptr)
    
        // 打印ptr的指针地址
        fmt.Printf("address: %p
    ", ptr)
    
        // 对指针进行取值操作
        value := *ptr
    
        // 取值后的类型
        fmt.Printf("value type: %T
    ", value)
    
        // 指针取值后就是指向变量的值
        fmt.Printf("value: %s
    ", value)
    
    }
    

    取地址操作符&和取值操作符*是一对互补操作符,&取出地址,*根据地址取出地址指向的值。

    变量、指针地址、指针变量、取地址、取值的相互关系和特性如下:

    • 对变量进行取地址操作使用&操作符,可以获得这个变量的指针变量。
    • 指针变量的值是指针地址。
    • 对指针变量进行取值操作使用*操作符,可以获得指针变量指向的原变量的值。
    参考链接

    http://c.biancheng.net/view/21.html

  • 相关阅读:
    闭包总结
    执行上下文总结
    下拉列表
    练习 九九乘法表
    JavaScript中break和continue的区别
    JaveScript遍历数组的方法
    将一个块级元素水平和垂直居中的方法
    ECMAScript 中最常见的一个问题是字符串连接的性能
    JS 一些题目 难点
    JS闭包
  • 原文地址:https://www.cnblogs.com/kylingx/p/13286166.html
Copyright © 2011-2022 走看看