Pointers 围棋中的BigInt指针
我在玩各种包和数据类型时,从“math/big”包中发现了这个函数(big.NewInt())。所以这个函数返回一个指向bigInt类型的指针,但是当我打印出来时,我得到的是实际值,而不是它存储的地址。有人能帮我更好地理解这个吗Pointers 围棋中的BigInt指针,pointers,go,bigint,Pointers,Go,Bigint,我在玩各种包和数据类型时,从“math/big”包中发现了这个函数(big.NewInt())。所以这个函数返回一个指向bigInt类型的指针,但是当我打印出来时,我得到的是实际值,而不是它存储的地址。有人能帮我更好地理解这个吗 package main import "fmt" import "math/big" import "reflect" func main(){ target := big.NewInt(1) a := 5 s := &a
package main
import "fmt"
import "math/big"
import "reflect"
func main(){
target := big.NewInt(1)
a := 5
s := &a
fmt.Println(reflect.TypeOf(target))
fmt.Println(reflect.TypeOf(s))
fmt.Println(s)
fmt.Println(target)
}
这是fmt的一个特点。它调用适当的字符串函数,与e指针或big.Int无关。但是y是否会在整数指针的情况下自动打印地址,而不是在大Int的情况下打印地址pointer@Chandru:因为
*int
没有字符串()
使其成为fmt.Stringer
的方法。目标持有哪个值?“0xc000000c080”或1?它在地址前打印“1”。这个地址就在它打印的第一个地址附近。我的测试只是复制并粘贴了您的示例,添加了一行。
fmt.Printf("%p\n", target) // 0xc00000c080