sizeof与二维数组

来源:互联网 发布:手机淘宝店铺添加收藏 编辑:程序博客网 时间:2024/05/19 13:27

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 4printf("%d %d\n",sizeof(a+0),sizeof(p+0));  //a相当是指针,输出4 4printf("%d\n",sizeof(a[0]));//输出8,a[0]相当与一个一维数组的数组名printf("%d\n",sizeof(a[0]+1));//输出4,a[0]的指针,输出指针大小}