sizeof與二維數組

sizeof與數組結合使用時,注意數組名是表示數組的首地址還是是個指針變量。

#include <stdio.h>

void f(int a[][2])  
{  
	printf("%d\n",sizeof a);  //輸出4,此時a是指針變量
} 
void f2(int(*a)[2])  
{  
	printf("%d\n",sizeof a);  //輸出4,此時a是指針變量
} 
void main()  
{  
	int a[2][2]={1,2,3,4};//這是一個2*2的二維數組  
	int (*p)[2];//數組指針  
	p=a;//令p指向數組a  
	printf("%d\n",sizeof a);//輸出16,a是二維數組的數組名,返回整個數組佔用空間大小
	f(a);
	f2(a);

	printf("%d %d\n",sizeof(a+1),sizeof(p+1));  //a相當是指針,輸出4 4
	printf("%d %d\n",sizeof(a+0),sizeof(p+0));  //a相當是指針,輸出4 4

	printf("%d\n",sizeof(a[0]));//輸出8,a[0]相當與一個一維數組的數組名
	printf("%d\n",sizeof(a[0]+1));//輸出4,a[0]的指針,輸出指針大小


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章