gpt4 book ai didi

go - 在golang中,&和*有什么区别

转载 作者:IT老高 更新时间:2023-10-28 13:06:52 24 4
gpt4 key购买 nike

谁能解释 GO 语言中 & 和 * 之间的区别.. 并举例说明何时使用 & 和 * 来说明区别?根据我的阅读,它们都与访问变量内存位置有关,但是我不确定何时使用 & 或 *。

最佳答案

这是一个非常简单的例子,它说明了如何使用 &*。请注意,* 可用于两种不同的事情:1)将变量声明为指针 2)取消引用指针。

package main

import "fmt"

func main() {
b := 6

var b_ptr *int // *int is used to declare variable
// b_ptr to be a pointer to an int

b_ptr = &b // b_ptr is assigned the value that is the
// address of where variable b is stored

// Shorthand for the above two lines is:
// b_ptr := &b

fmt.Printf("address of b_ptr: %p\n", b_ptr)

// We can use *b_ptr to get the value that is stored
// at address b_ptr, known as dereferencing the pointer
fmt.Printf("value stored at b_ptr: %d\n", *b_ptr)

}

结果:

address of b_ptr: 0xc82007c1f0
value stored at b_ptr: 6

关于go - 在golang中,&和*有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33242850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com