Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;数组名称的值 #包括 使用名称空间std; int main() { int-foo[5]={0,1,2,3,4}; cout_C++_Arrays - Fatal编程技术网

C++ C++;数组名称的值 #包括 使用名称空间std; int main() { int-foo[5]={0,1,2,3,4}; cout

C++ C++;数组名称的值 #包括 使用名称空间std; int main() { int-foo[5]={0,1,2,3,4}; cout,c++,arrays,C++,Arrays,foo(不访问数组元素)将在发送到输出流时衰减到第一个数组元素(foo[0])的地址 foo[0]将返回第一个数组元素,&foo[0]将衰减到其地址。因此,两个输出值是相同的。foo(不访问数组元素)将在发送到输出流时衰减到第一个数组元素的地址(foo[0]) foo[0]将返回第一个数组元素,&foo[0]将衰减到其地址。因此,两个输出值是相同的。不同的是类型: foo具有类型int(&)[5] foo[0]具有类型int& &foo具有类型int(*)[5] &foo[0]具有类型int*

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

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

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


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

不同的是类型:

  • foo
    具有类型
    int(&)[5]
  • foo[0]
    具有类型
    int&
  • &foo
    具有类型
    int(*)[5]
  • &foo[0]
    具有类型
    int*

操作符区别在于类型:

  • foo
    具有类型
    int(&)[5]
  • foo[0]
    具有类型
    int&
  • &foo
    具有类型
    int(*)[5]
  • &foo[0]
    具有类型
    int*
operator它也是关于std::stream::operator它也是关于std::stream::operator@delnan:
foo+1!=(&foo)[1]
,这就是我刚才说的区别。澄清一点。@delnan:
foo+1!=(&foo)[1]
,这就是我刚才说的区别。澄清一点。
#include <iostream>
using namespace std;
int main()
{
    int foo[5] = {0,1,2,3,4};
    cout << (&foo[0]) << "   " << foo <<endl;

    return 0;
}
(&foo[0]) + 1 == &foo[1]
(&foo)[1] == &foo[5]