arrays - 使用指针访问数组内的值
问题描述
我在 golang 中注意到我们可以使用指向数组的指针,如下所示:
arr := [3]int{1, 2, 3}
var ptr *[3]int = &arr
要获取存储在索引 n 处的值,我们可以这样做(*ptr)[n]
,但为什么ptr[n]
还要获取我的值,它不应该输出一些随机地址吗?
语境
在 C++ 中,这是观察到的行为
int (*ptr)[5];
int arr[] = {1,2,3,4,5};
ptr = &arr;
cout <<"ptr[1] = " << ptr[1] <<endl; //Outputs an address (base address of array + 20bytes)
cout << "(*ptr)[1] = " << (*ptr)[1]<< endl; //Outputs 2
解决方案
推荐阅读
- terraform - 在 azure 中运行的每个管道的负载均衡器后端池下获取额外的 VM
- typescript - 利用接口或类型来描述对象的键
- python - 由用户对 Dataframe 列执行计算并添加为新列
- php - 使用标志时 MySQL 连接被拒绝
- python - Apache SPark:groupby 未按预期工作
- amazon-web-services - 亚马逊个性化 SIMS 和个性化排名食谱是否支持元数据?
- html - 修复了具有全窗口拉伸和滚动时不重复的背景图像?
- r - R:如何在df中的5个变量中逐行找到10个最常见的对
- python - Python ModuleNotFound 等
- kotlin - 我应该为一个小列表使用 Android 分页库吗?