#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<string.h> #include<assert.h> #include <stdlib.h> /* qsort */ int main() { //sizeof(数组名)-数组名表示整个数组的-计算的是整个数组的大小 //&数组名-数组名表示整个数组,取出的是整个数组的地址 //除此之外其它,所有的数组名都是首元素的地址 int a[] = { 1,2,3,4 }; printf("%d\n", sizeof(a));//16 //16 printf("%d\n", sizeof(a+0));//4 //8 printf("%d\n", sizeof(*a));//4 //4 printf("%d\n", sizeof(a+1));//4 //8 printf("%d\n", sizeof(a[1]));//4 //4 printf("---------------------\n"); printf("%d\n", sizeof(&a));//4 //8 printf("%d\n", sizeof(*&a));//16 //16 printf("%d\n", sizeof(&a+1));//4 //8 printf("%d\n", sizeof(&a[0]));//4 //8 printf("%d\n", sizeof(&a[0]+1));//4 //8 //字符数组 char arr[] = { 'a','b','c','d','e','f' }; printf("---------------------\n"); printf("%d\n", sizeof(arr)); //6 //6 printf("%d\n", sizeof(arr+0)); //4 //8 printf("%d\n", sizeof(*arr)); //1 //1 printf("%d\n", sizeof(arr[1])); //1 //1 printf("%d\n", sizeof(&arr)); //4 //8 printf("%d\n", sizeof(&arr+1)); //4 //8 printf("%d\n", sizeof(&a[0] + 1));//4 //8 printf("-----------------------\n"); printf("%d\n", strlen(arr)); //随机值 printf("%d\n", strlen(arr+0)); //随机值 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));//随机值 return 0; }