#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.
我正在64位架构intel i5-8th gen处理器上使用带有GCC编译器(32位架构)的code_blocks 17.12。
如果数组的名称是指向其第一个元素的指针,那么为什么选择sizeof(a) main()函数中的函数返回其大小,而不返回指针(32位)的大小。 在calculate_size_in_fun()内部,它给出了变量指针的大小。
为什么指针大小为4个字节(对于所有int,char和double),独立于其存储的值,在calculate_size_in_fun()中。
如果它与编译器的32位体系结构有关,则指针实际上存储在内存中。它如何解释内存中的地址?