C++ 为什么在函数sizeof中返回指针的大小而不是数组的大小?

C++ 为什么在函数sizeof中返回指针的大小而不是数组的大小?,c++,c,pointers,gcc,sizeof,C++,C,Pointers,Gcc,Sizeof,我在64位体系结构的intel i5-8th gen处理器上使用带有GCC编译器(32位体系结构)的代码块17.12 如果数组的名称是指向其第一个元素的指针,那么为什么是sizeof(a) 函数返回其大小,而不是指针的大小(32位)。 在函数中计算出变量指针的大小 为什么指针大小是4字节(对于所有int、char和double),与它存储的值无关,在calculate\u size\u in\u fun()中 如果它与编译器的32位体系结构有关,那么指针实际存储在内存中的内容就不多了。它如何解释

我在64位体系结构的intel i5-8th gen处理器上使用带有GCC编译器(32位体系结构)的代码块17.12

如果数组的名称是指向其第一个元素的指针,那么为什么是sizeof(a) 函数返回其大小,而不是指针的大小(32位)。 在函数中计算出变量指针的大小

为什么指针大小是4字节(对于所有int、char和double),与它存储的值无关,在calculate\u size\u in\u fun()中


如果它与编译器的32位体系结构有关,那么指针实际存储在内存中的内容就不多了。它如何解释内存中的地址?

没有数组类型的参数…@BenVoigt实际上有,但在这种情况下没有course@Slava:没有。您可以有一个类型为指向数组的指针的参数,或(仅限C++)对数组的引用,或具有数组成员的结构。但这些都没有一个数组类型。“Beoviigt OK,参考数组足够接近:这是C++继承的,如果你想更好地使用数组<代码> STD::数组< /COD>或<代码> STD::向量< /代码>
#include<iostream>
using namespace std;
void calcuate_size_in_fun(int y[],char x[],double z[]){

    cout<<sizeof(y)<<" "<<sizeof(x)<<" "<<sizeof(z);

}

int main(){
int a[10];
char c[30];
double v[10];
cout<<sizeof(a)<<" "<<sizeof(c)<<" "<<sizeof(v)<<"\n";
calcuate_size_in_fun(a,c,v);

}
40 30 80
4 4 4
Process returned 0 (0x0)   execution time : 3.108 s
Press any key to continue.