You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何对数组元素执行&操作输出地址而非值?我以为引用访问元素值

为什么&array[0]输出的是地址而非元素值?

你这里搞错了C++里&的两种不同用法:

  • 一种是引用声明,比如写int& ref = array[0];,这时候ref是array[0]的别名,访问ref就是直接拿元素值。
  • 另一种是取地址运算符,就是你代码里的&array[0]——这个符号在这里的作用是获取array[0]这个元素在内存里的存储地址,而不是读取它的值。

拆解你的代码:

  • array[0]本身确实是数组的第一个元素,值是1。
  • 但前面加了&之后,就把这个元素转换成了它的内存地址,所以std::cout会输出一串代表内存位置的十六进制数(比如0x7ffeefbff5c0)。

如果想输出元素值,直接写array[0]就行;或者你也可以用*&array[0]——先用&取地址,再用*解引用,也能得到元素值1。

内容的提问来源于stack exchange,提问作者kvrier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:40:48