sizeof

sizeof是一个操作符。

int main()
{
int a[] = { 1,2,3,4 };
//          0 1 2 3
int (*p)[4] = &a;

printf("%d\n", sizeof(a));//4*4 = 16


printf("%d\n", sizeof(a + 0));//4/8 a+0是数组第一个元素的地址,是地址,大小就是4/8个字节


printf("%d\n", sizeof(*a)); //4 a表示数组首元素的地址,*a表示数组的第一个元素,sizeof(*a)就是第一个元素的大小-4


printf("%d\n", sizeof(a + 1));//4/8 a表示数组首元素的地址,a+1数组第二个元素的地址,sizeof(a+1)就是第二个元素的地址的大小


printf("%d\n", sizeof(a[1]));//4 计算的是第二个元素的大小


printf("%d\n", sizeof(&a));//4/8 &a取出的是数组的地址,数组的地址也是地址呀,是地址大小就是4/8字节


printf("%d\n", sizeof(*&a));//16 计算的整个数组的大小 


printf("%d\n", sizeof(&a + 1));//4/8 - &a是数组的地址,+1跳过整个数组,产生的4后边位置的地址


printf("%d\n", sizeof(&a[0]));//4/8 取出的数组第一个元素的地址


printf("%d\n", sizeof(&a[0] + 1));//4/8 数组第二个元素的地址

return 0;
}

你可能感兴趣的:(无,c语言)