指针和数组笔试题
其实这部分内容也没有啥要说的,讲再多都不如自己把代码抠出来自己跑一遍,能考查的题其实也就这么多。
int main()
{
//int a[] = { 1, 2, 3, 4 };
//printf("%d\n", sizeof(a)); //16
//printf("%d\n", sizeof(a + 0)); //4
//printf("%d\n", sizeof(*a)); //4
//printf("%d\n", sizeof(a + 1)); //4
//printf("%d\n", sizeof(a[1]));//4
//printf("%d\n", sizeof(&a));//4
//printf("%d\n", sizeof(*&a)); //16
//printf("%d\n", sizeof(&a + 1)); //4
//printf("%d\n", sizeof(&a[0])); //4
//printf("%d\n", sizeof(&a[0] + 1));//4
char arr[] = { 'a', 'b', 'c', 'd', 'e', 'f' };
char arr[] = "abcdef";
//printf("%d\n", sizeof(arr));//6
//printf("%d\n", sizeof(arr + 0));//4
//printf("%d\n", sizeof(*arr));//1
//printf("%d\n", sizeof(arr[1]));//1
//printf("%d\n", sizeof(&arr));//4
//printf("%d\n", sizeof(&arr + 1));//4
//printf("%d\n", sizeof(&arr[0] + 1));//4
//printf("%d\n", strlen(arr));//19
//printf("%d\n", strlen(arr + 0));//19
//printf("%d\n", strlen(*arr));
//printf("%d\n", strlen(arr[1]));
//printf("%d\n", strlen(&arr));
//printf("%d\n", strlen(&arr + 1));
//printf("%d\n", strlen(&arr[0] + 1));
//char *p = "abcdef";
//printf("%d\n", sizeof(p));//4
//printf("%d\n", sizeof(p + 1));//4
//printf("%d\n", sizeof(*p));//1
//printf("%d\n", sizeof(p[0]));//1
//printf("%d\n", sizeof(&p));//4
//printf("%d\n", sizeof(&p + 1));//4
//printf("%d\n", sizeof(&p[0] + 1));//4
//二维数组
//int a[3][4] = { 0 };
//printf("%d\n", sizeof(a));//48
//printf("%d\n", sizeof(a[0][0]));//4
//printf("%d\n", sizeof(a[0]));//16
//printf("%d\n", sizeof(a[0] + 1));//4
//printf("%d\n", sizeof(*(a[0] + 1)));//4
//printf("%d\n", sizeof(a + 1));//4
//printf("%d\n", sizeof(*(a + 1)));//16
//printf("%d\n", sizeof(&a[0] + 1));//4
//printf("%d\n", sizeof(*(&a[0] + 1)));//16
//printf("%d\n", sizeof(*a));//16
//printf("%d\n", sizeof(a[3]));//16
return 0;
}