指针在Go编程语言或Golang中, 是一个变量, 用于存储另一个变量的内存地址。 Golang中的指针也称为特殊变量。变量用于在系统中的特定内存地址存储一些数据。始终以十六进制格式找到内存地址(以0x开头, 如0xFFAAF等)。
在指针中, 你可以借助来查找指针的容量。
cap函数-这个函数是一个内置函数, 返回指向数组的指针的容量。在Go语言中, 容量定义了存储在指向数组的指针中的最大元素数。此函数在内置中定义。
语法如下:
func cap(l Type) int
在这里, 类型升是一个指针。让我们借助示例来讨论这个概念:
例子:
//Go program to illustrate how to find the
//capacity of the pointer to an array
package main
import (
"fmt"
)
//Main function
func main() {
//Creating and initializing
//pointer to array
//Using var keyword
var ptr1 [7]* int
var ptr2 [5]*string
var ptr3 [8]*float64
//Finding the capacity of
//the pointer to array
//Using cap function
fmt.Println( "Capacity of ptr1: " , cap(ptr1))
fmt.Println( "Capacity of ptr2: " , cap(ptr2))
fmt.Println( "Capacity of ptr3: " , cap(ptr3))
}
输出如下:
Capacity of ptr1 : 7
Capacity of ptr2 : 5
Capacity of ptr3 : 8
示例2:
//Go program to illustrate how to find the
//capacity of the pointer to an array
package main
import (
"fmt"
)
//Main function
func main() {
//Creating an array
arr := [8] int {200, 300, 400, 500, 600, 700, 100, 200}
var x int
//Creating pointer
var p [5]* int
//Assigning the address
for x = 0; x <len(p); x++ {
p[x] = &arr[x]
}
//Displaying result
for x = 0; x <len(p); x++ {
fmt.Printf( "Value of p[%d] = %d\n" , x, *p[x])
}
//Finding capacity
//using cap() function
fmt.Println( "Capacity of arr: " , cap(arr))
fmt.Println( "Capacity of p: " , cap(p))
}
输出如下:
Value of p[0] = 200
Value of p[1] = 300
Value of p[2] = 400
Value of p[3] = 500
Value of p[4] = 600
Capacity of arr: 8
Capacity of p: 5
来源:
https://www.srcmini02.com/68587.html