#include<stdio.h>
int main()
{
char arr[] = { 'a','b','c','d','e','f' };
printf("%d\n", sizeof(arr));//6个字节
//arr是数组名,并且是单独放在sizeof内部,计算的是数组的总大小,单位是字节
printf("%d\n", sizeof(arr + 0));//4个字节/8个字节
//arr是数组名,并非单独放在sizeof内部,arr就是表示首元素的地址
printf("%d\n", sizeof(*arr));//1个字节
//arr是首元素的地址,*arr就是首元素,sizeof计算首元素的大小
printf("%d\n", sizeof(arr[1]));//1个字节
//arr[1]是第二个元素,sizeof(arr[1])计算的是第二个元素的大小,1个字节
printf("%d\n", sizeof(&arr));//4个字节/8个字节
//&arr - 取出的是数组的地址,计算的是数组的地址
printf("%d\n", sizeof(&arr + 1));//4个字节/8个字节
//&arr - 取出的是数组的地址,&arr+1跳过一个数组,指向'f'的后面,计算的是地址
printf("%d\n", sizeof(&arr[0] + 1));//4个字节/8个字节
//&arr[0]是'a'的地址,&arr[0]+1是'b'的地址,是地址就是4/8个字节
return 0;
}