数组和指针的sizeof的结果 是不同的
- 当arr是一个数组时,sizeof(arr)的结果是整个数组中的元素所占的字节的个数
- 而当p是一个指针时,即使指向某个数组,但sizeof(p)的结果在32为系统中一定是 4
验证代码如下:
/*
数组和指针的sizeof的结果 是不同的
当arr是一个数组时,sizeof(arr)的结果是整个数组所占的字节的个数
而当p是一个指针时,即使指向某个数组,但sizeof(p)的结果在32为系统中一定是 4
*/
#include<stdio.h>
int getSize(int arr[]){
return sizeof(arr);
}
int main(void){
int arr[]={1,2,3,4};
int size1=sizeof(arr);
int *p1=arr;
int size2=sizeof(p1);
int size3=getSize(p1);
printf("%d %d %d",size1,size2,size3);
return 0;
}
程序的运行结果是:16 4 4
版权声明:本文为博主原创文章,未经博主允许不得转载。
sizeof(数组名)和sizeof(指针名)的结果是不同的
原文地址:http://blog.csdn.net/u010412719/article/details/48107181