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]的指针,输出指针大小


}


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