Saturday, April 24, 2010

sizeof pointer

一般情况下,
sizeof(pinter)返回的是指针本身所占用的空间,也就是一个地址所占用的空间,一般为32bits(位)。

不过:
int a[]={10,9,0,2,3}; //5个元素
printf("length:%d",sizeof(a)/sizeof(int));
bubble_sort(a,5);

这个时候,会打印:
length:5

而在bubble_sort里面同样打印,sizeof(a)/sizeof(int),则结果为2.

所以,sizeof(array),会得到array这个数组的长度,
但是一旦这个array被转化为指针,再进行sizeof就不可靠了,得到的就是一个地址的长度了。

No comments: