Go 语言指针容量

在指针中,可以使用cap()函数来查找指针的容量。这个函数是一个内置函数,返回指向数组的指针的容量。在Go语言中,容量定义了存储在指向数组的指针中的最大元素数。此函数在内置中定义。

语法:

func cap(l Type) int

在这里,l的类型是一个指针。让我们借助示例来讨论这个概念:

// Go程序来说明如何查找
//指向数组的指针的容量
package main

import (
    "fmt"
)

func main() {

    //创建和初始化
    //指向数组的指针
    //使用var关键字
    var ptr1 [7]*int
    var ptr2 [5]*string
    var ptr3 [8]*float64

    //查找容量
    //指向数组的指针
    //使用cap()函数
    fmt.Println("ptr1 容量: ", cap(ptr1))
    fmt.Println("ptr2 容量: ", cap(ptr2))
    fmt.Println("ptr3 容量: ", cap(ptr3))
}

输出:

ptr1 容量:  7
ptr2 容量:  5
ptr3 容量:  8

Go获取数组指针的容量的示例2:

package main

import (
    "fmt"
)

func main() {

    //创建数组
    arr := [8]int{200, 300, 400, 500, 600, 700, 100, 200}

    var x int

    //创建指针
    var p [5]*int

    //分配地址
    for x = 0; x < len(p); x++ {
        p[x] = &arr[x]
    }

    //显示结果
    for x = 0; x < len(p); x++ {

        fmt.Printf("p[%d] 的值= %d\n",x, *p[x])
    }

    // 使用 cap() 函数查找容量
    fmt.Println("arr的容量: ", cap(arr))
    fmt.Println("p的容量: ", cap(p))
}

输出:

p[0] 的值= 200
p[1] 的值= 300
p[2] 的值= 400
p[3] 的值= 500
p[4] 的值= 600
arr的容量:  8
p的容量:  5