int a[]={1,2,3,4,5};
int *p=a;
sizeof(a)和sizeof(p)的结果不一样,为什么?
int*p=a ;过程中p少了什么?
int a[]={1,2,3,4,5};
int *p=a;
sizeof(a)和sizeof(p)的结果不一样,为什么?
int*p=a ;过程中p少了什么?
sizeof是运算符,在编译器编译阶段就计算出结果了。
int
类型的元素,每个int
占用4个字节的空间,总占用20个字节的空间int*p=a;
过程就是加载a
的首地址到p
中,而且这个只是赋值,不是画上等号,a
还是数组类型,p
是指针类型,这个在编译阶段,编译器是可以区分出来的,所以编译器可以计算出各自的占用空间