发布时间:2024-11-22 00:43:46
func setValue(value int) {
value = 10
}
func setPointer(pointer *int) {
*pointer = 10
}
在上述示例中,setValue函数接收一个整型参数,并将该参数的值设为10。setPointer函数接收一个整型指针参数,并通过指针来修改原始参数的值。 使用示例代码如下:func main() {
value := 5
pointer := &value
fmt.Println("Before setValue:", value) // 输出: Before setValue: 5
setValue(value)
fmt.Println("After setValue:", value) // 输出: After setValue: 5
fmt.Println("Before setPointer:", value) // 输出: Before setPointer: 5
setPointer(pointer)
fmt.Println("After setPointer:", value) // 输出: After setPointer: 10
}
从上述示例的输出结果可以看出,通过传递值类型的参数并不能修改原始参数的值,但是通过传递指针参数却能够成功修改原始参数的值。func getValue(pointer *int) {
fmt.Println("Value:", *pointer)
}
在上述示例中,getValue函数接收一个整型指针参数,并通过该指针打印出指针所指向的值。 使用示例代码如下:func main() {
value := 10
pointer := &value
fmt.Println("Before getValue:", value) // 输出: Before getValue: 10
getValue(pointer)
fmt.Println("After getValue:", value) // 输出: After getValue: 10
}
从上述示例的输出结果可以看出,通过传递指针类型的参数可以访问指针所指向的值,但是无法修改原始指针的值。