#include<stdio.h>
#include<unistd.h>
#include<string.h>
int main()
{
//一维数组
//本系统为64位
//int a[] = {1,2,3,4};
//printf("16::%ld\n",sizeof(a));
//printf("8::%ld\n",sizeof(a+0));//地址
//printf("4::%ld\n",sizeof(*a));
//printf("8::%ld\n",sizeof(a+1));//地址
//printf("4::%ld\n",sizeof(a[1]));
//printf("8::%ld\n",sizeof(&a));
//printf("8::%ld\n",sizeof(&a+1));
//printf("8::%ld\n",sizeof(&a[0]));
//printf("8::%ld\n",sizeof(&a[0]+1));
char arr[] = {'a','b','c','d','e','f'};
//printf("6::%ld\n", sizeof(arr));
//printf("8::%ld\n", sizeof(arr+0));
//printf("1::%ld\n", sizeof(*arr));
//printf("1::%ld\n", sizeof(arr[1]));
//printf("8::%ld\n", sizeof(&arr));
//printf("8::%ld\n", sizeof(&arr+1));
//printf("8::%ld\n", sizeof(&arr[0]+1));
//printf("6::%ld\n",strlen(arr));
//printf("6::%ld\n", strlen(arr+0));
printf("%ld\n", strlen(*arr));
printf("%ld\n", strlen(arr[1]));
//printf("6::%ld\n", strlen(&arr));
//printf("0::%ld\n", strlen(&arr+1));
//printf("5::%ld\n", strlen(&arr[0]+1));
//char *p = "abcdef";
//printf("8::%lu\n", sizeof(p));
//printf("8::%lu\n", sizeof(p+1));
//printf("1::%lu\n", sizeof(*p));
//printf("1::%lu\n", sizeof(p[0]));
//printf("8::%lu\n", sizeof(&p));
//printf("8::%lu\n", sizeof(&p+1));
//printf("8::%lu\n", sizeof(&p[0]+1));
//printf("6::%lu\n", strlen(p));
//printf("5::%lu\n", strlen(p+1));
printf("$::%lu\n", strlen(*p));
printf("$::%lu\n", strlen(p[0]));
//printf("6::%lu\n", strlen(&p));//?
//printf("$::%lu\n", strlen(&p+1));//?
//printf("5::%lu\n", strlen(&p[0]+1));
//二维数组
int a[3][4] = {0};
printf("48::%lu\n",sizeof(a));
printf("4::%lu\n",sizeof(a[0][0]));
printf("16::%lu\n",sizeof(a[0]));
printf("8::%lu\n",sizeof(a[0]+1));
printf("8::%lu\n",sizeof(a+1));
printf("8::%lu\n",sizeof(&a[0]+1));
printf("16::%lu\n",sizeof(*a));
printf("16::%lu\n",sizeof(a[3]));
}