当前位置: 首页 > 面试题库 >

如何在Golang中打印切片的内存地址?

谢正初
2023-03-14
问题内容

我有一些C方面的经验,对golang完全陌生。

func learnArraySlice() {
  intarr := [5]int{12, 34, 55, 66, 43}
  slice := intarr[:]
  fmt.Printf("the len is %d and cap is %d \n", len(slice), cap(slice))
  fmt.Printf("address of slice 0x%x add of Arr 0x%x \n", &slice, &intarr)
}

现在在golang
slice中是array的引用,其中包含指向slice的数组len和slice的上限的指针,但是该slice也将分配在内存中,我想打印该内存的地址。但是无法做到这一点。


问题答案:

http://golang.org/pkg/fmt/

fmt.Printf("address of slice %p add of Arr %p \n", &slice, &intarr)

%p 将打印地址。



 类似资料:
  • 问题内容: 我在正在研究的项目中遇到问题。我找到了解决方法,但是我不确定为什么我的解决方案有效。我希望对Go指针的工作方式有更多经验的人能对我有所帮助。 我有一个Model接口和一个实现该接口的Region结构。Model接口是在Region结构的指针上实现的。我也有一个Regions集合,它是Region对象的一部分。我有一种方法可以将Regions对象转换为[] Model: 当我运行此代码时

  • 问题内容: 我很好奇为什么只在var上打印内存地址就可以直接使用,但是尝试通过接口执行相同的操作却不能打印出内存地址? https://play.golang.org/p/Ko8sEVfehv 只是想在修复错误后添加它,它现在可以正常运行。测试移位内存指针 https://play.golang.org/p/BnB14-yX8B 问题答案: 因为在方法第二种情况下: 不是一个而是一个结构,是类型的

  • 问题内容: 为什么地图打印混乱,如何使它秩序井然? 打印输出: 问题答案: 码: (其中大部分是从萨默菲尔德先生的书中偷走的) 输出:

  • 问题内容: 我最近学习了Go语言,现在对以下代码感到困惑: 结果: 问题答案: c是从数组中获取的一个切片b。这不是副本,而只是的两个前两个元素的窗口b。 由于b容量为5,c可以扩展到其他3个位置(实际上,它会创建一个新的切片,但位于内存中的同一位置)。 切片的最大容量是底层数组的容量减去切片在数组中起始位置的大小: func main() { b := make([]int, 0, 5) c :

  • 问题内容: 无论如何,是否可以使用新的Swift语言从Objective-C 模拟? 例如: 问题答案: 现在,它已成为标准库的一部分:。 迅捷3 对于Swift 3,请使用:

  • 我正在解组一个结构,我希望它以格式化的方式打印它。 我的代码(https://play.golang.org/p/D0KwGP6Cxa0)当前生成以下输出: 我希望它只有名称和值,并在每个项目后有一个新行。例如: 你知道我该怎么做吗?