Golang:3.5、Golang 指针
  TEZNKK3IfmPf 2023年11月15日 21 0

3.5、Golang 指针

指针

  • 取地址:&

  • 取值:*

指针地址:每一个变量都有一个地址,地址代表变量在内存中的位置

Go语言中的值类型(int、float、bool、string、array、struct)

对应的指针类型(*int、*int64、*string)

指针变量定义语法

// 指针变量名 指针类型
var var_name *var_type

示例

package main

import "fmt"

func main() {
    // 声明指针变量
    var ip *int
    fmt.Printf("%v\n", ip) // <nil>
    fmt.Printf("%T\n", ip) // *int

    // 声明int变量
    var i int = 10

    // 取地址
    ip = &i

    fmt.Printf("%v\n", ip)
    // 0xc0000ae010

    // 取值
    fmt.Printf("%v\n", *ip)
    // 10
}

指向数组的指针

定义语法

// 表示数组里面的元素类型是指针类型
var ptr [MAX]*int;

示例

package main

import "fmt"

func main() {
	arr := [...]int{1, 2, 3}
	var ptr [len(arr)]*int

	fmt.Printf("%v\n", ptr)
	// [<nil> <nil> <nil>]

	for i := 0; i < len(arr); i++ {
		ptr[i] = &arr[i]
	}

	fmt.Printf("%v\n", ptr)
	// [0xc000022090 0xc000022098 0xc0000220a0]

	for i := 0; i < len(ptr); i++ {
		fmt.Printf("%v\t", *ptr[i])
	}
	// 1	2	3
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月17日   42   0   0 golanghttps
  TEZNKK3IfmPf   2023年11月15日   32   0   0 golang
  TEZNKK3IfmPf   2024年05月31日   23   0   0 后端golang开发语言
  TEZNKK3IfmPf   2023年11月15日   32   0   0 golang
  TEZNKK3IfmPf   19天前   22   0   0 指针C++
  TEZNKK3IfmPf   2024年05月17日   51   0   0 算法javagolang
TEZNKK3IfmPf