数组名称的 C++ 值

标签 c++ arrays

#include <iostream>
using namespace std;
int main()
{
    int foo[5] = {0,1,2,3,4};
    cout << (&foo[0]) << "   " << foo <<endl;

    return 0;
}

输出结果为0x28feec 0x28feec。 &foo[0]、foo 和 &foo 之间有什么区别? 如果foo是指向foo[0]地址的指针,这样使用是不是很好?

感谢您的回答。

最佳答案

foo(不访问数组元素)在发送到输出流时将衰减到第一个数组元素 (foo[0]) 的地址。

foo[0] 将返回第一个数组元素,&foo[0] 将衰减到它的地址。因此,这两个输出值是相同的。

关于数组名称的 C++ 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300737/

相关文章:

c++ - 在 while 循环中使用 std::condition_variable::wait 是否正确?

c++ - 什么是简单、可测试、跨平台的 C++ GUI?

python - 代码仅显示从临时数组到二维数组的最新输入?

javascript - 在 NodeJS 中解析 JSON 对象数组

c++ - MFC 容器 CObList 的 STL 迭代器

c++ - 重载调用不明确

java - 使用 for 循环将英语翻译为莫尔斯电码

arrays - PowerShell 的 -f 运算符的 RHS *究竟*如何工作?

arrays - 来自相应形状的数组结构的数据

c++ - 无法完成 Rice (Ruby) 的简单示例。我错过了什么?