sizeof与二维数组

sizeof关键字用于返回变量或类型所占存储空间的字节数。如下代码在xp下执行

#include 
#include 
#include 

int a[10];
int b[3][5];

int main(void)
{
  printf("int a[10]\r\n");
  printf("sizeof(int)=%d\r\n",sizeof(int));
  printf("sizeof(a)=%d\r\n",sizeof(a));
  printf("sizeof(*a)=%d\r\n",sizeof(*a));
  printf("sizeof(a[10])=%d\r\n",sizeof(a[10]));
  printf("sizeof(&a)=%d\r\n",sizeof(&a));
  printf("sizeof(&a[0]=%d\r\n",sizeof(&a[0]));

  printf("int b[3][5]\r\n");
  printf("sizeof(b)=%d\r\n",sizeof(b));
  printf("sizeof(b[0])=%d\r\n",sizeof(b[0]));
  printf("sizeof(b[0][0])=%d\r\n",sizeof(b[0][0]));
  printf("sizeof(b)/sizeof(b[0])=%d\r\n",sizeof(b)/sizeof(b[0]));
  printf("sizeof(b[0])/sizeof(b[0][0])=%d\r\n",sizeof(b[0])/sizeof(b[0][0]));

  return 0;
}

结果如下:
int a[10]
sizeof(int)=4
sizeof(a)=40
sizeof(*a)=4
sizeof(a[10])=4
sizeof(&a)=4
sizeof(&a[0]=4
int b[3][5]
sizeof(b)=60
sizeof(b[0])=20
sizeof(b[0][0])=4
sizeof(b)/sizeof(b[0])=3
sizeof(b[0])/sizeof(b[0][0])=5

也就是说sizeof返回的是字节数。

2人评论了“sizeof与二维数组”

发表评论

邮箱地址不会被公开。 必填项已用*标注