我可以在 C++ 中输出数组的内存地址吗?

问题描述

如何在C++中输出数组的内存地址?有没有一种方法可以做到这一点? 我在数组中有 4 个元素,我想计算这些元素并输出这些元素的内存地址。

解决方法

是的,你可以。可以直接打印数组的地址,也可以打印第一个元素的地址,都是一样的。

您也可以使用 std::addressof,它是在 c++11 中引入的。

所有这些打印语句都得到相同的输出。


#include <iostream>

int main(int argc,char* argv[]) {
  int arr[] = {1,2,3,4};
  std::cout << &arr << std::endl;
  std::cout << arr << std::endl;
  std::cout << &arr[0] << std::endl;
  std::cout << std::addressof(arr) << std::endl;
  std::cout << std::addressof(arr[0]) << std::endl;
  return 0;
}

Online demo