序言
strlen函数和sizeof函数是我们S学习中比较常用的一个函数,通过这个与字符数组指针的组合可以更深入的了解C语言里的指针问题
一维数组
int arr[10]={
0,1,2,3,4,5,6,7,8,9};
printf("%d\n",sizeof(arr)); // 40 arr为整个数组,十个元素,一个int元素四个字节,一个数组40个字节
printf("%d\n",sizeof(arr+1)); //4 arr+1数组加减变指针,指针型占四个字节
printf("%d\n",sizeof(arr[0])); //4 取下标操作,访问int型数据,一个int元素占四个字节
printf("%d\n",sizeof(*arr)); //4 *arr为指向首元素的指针解引用,得到int型占4个字节
printf("%d\n",sizeof(&arr)); //4 &arr为数组指针,为int(*)[10]类型,指针,四个字节
printf("%d\n",sizeof(*&arr)); //40 对数组指针解引用得到整个数组,大小为40
printf("%d\n",sizeof(&arr+1)); //4 数组指针+1仍然是数组指针,指针 四个字节
printf("%d\n",sizeof(&arr[0]+1)); //4 取首元素地址,+1指向下一个元素,指针 四个字节
字符数组
sizeof
char arr[5]={
'A','B','C','D','E'};
printf("%d\n",sizeof(arr)); //5 arr为整个字符数组,五个字符元素,一个char型占一个字节
printf("%d\n",sizeof(arr+0)); //4 arr+0变指针,四个字节
printf("%d\n",sizeof