zoukankan      html  css  js  c++  java
  • Go语言学习笔记(6)——指针

    指  针

    指针 存储另一个变量的内存地址的变量; Go语言的取地址符号也是&

    1. 声明指针: var needle_name *type

          var b int = 10

          var a *int = &b    // 整型指针a,指向变量b(即存储b的内存地址)

       使用 *a 获得其所指向的变量b的值10, 可以通过指针改变变量的值: *a++, 然后b的值就变成了11.

    2. 结构体的定义和使用:

    type name int8 // 结构体中成员变量的类型可以在结构体定义外指定
    type first struct { // 这里的结构体名为first
        a int
        b bool     // bool类型的变量默认值为false
        name }
    
     var a = first{1, false, 2}   // 定义first结构体类型的变量a
     a.a = 0
     var b *first = &a             //定义first类型的指针b        

        注意: 此时b.a和(*b).a都可以获取a.a的值 0    !
        &a的打印结果为: &{0 false 2}        //就是没有逗号comma分隔符!!!  

     

    3. 当一个指针被声明但却没有为其赋值时,它就是一个空指针,值为 nil; 一个指针变量通常缩写为 ptr

     

    4. 指针作为参数传递: 因为指针存的是一个变量的地址,所以使用实参指针和形参指针都可以改变变量的值。 虽然可以将数组的地址传递给一个函数的参数(指针数组)并对其进行修改,但这并不是实现这一目标的惯用方法。 我们有切片!!!

     

    5. 指针的指针: var ptr **int   // 则指针 ptr 可以存储另一个指针的地址 (对应 ptr)

    ///纵有疾风起,人生不言弃///
  • 相关阅读:
    python基础(十七)
    Python基础(十六)
    Python基础(十五)
    Python基础(十四)
    Python基础(十三)
    Python基础(十二)
    项目分享:模拟博客园登录
    项目分享:模拟购物车
    Python基础(十一)
    课件站
  • 原文地址:https://www.cnblogs.com/skzxc/p/11187468.html
Copyright © 2011-2022 走看看