#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
//一维字符数组
char arr[] = { 'a','b','c','d','e','f' };
printf("%d\n", sizeof(arr)); //sizeof计算的是数组的大小,6字节
printf("%d\n", sizeof(arr + 0)); //arr是首元素的地址,arr+0还是首元素的地址,4/8
printf("%d\n", sizeof(*arr)); //*arr是首元素,元素的大小是一个字节,1
printf("%d\n", sizeof(arr[1])); //arr[1]是第二个元素,1
printf("%d\n", sizeof(&arr)); //&arr是数组的地址,4/8
printf("%d\n", sizeof(&arr + 1)); //&arr+1是跳过了整个数组地址后的地址,4/8
printf("%d\n", sizeof(&arr[0] + 1)); //第二个元素的地址,4/8
printf("\n");
const char* p = { "abcdef" };
printf("%d\n", sizeof(p)); //计算指针p的大小,4/8
printf("%d\n", sizeof(p + 1)); //p+1得到的是字符b的大小,4/8
printf("%d\n", sizeof(*p)); //*p是字符串的第一个字符a,1
printf("%d\n", sizeof(p[0])); //p[0]==*(p+0)=='a,1
printf("%d\n", sizeof(&p)); //地址,4/8
printf("%d\n", sizeof(&p + 1)); //地址,4/8
printf("%d\n", sizeof(&p[0] + 1)); //地址,4/8
return 0;
}
sizeof计算一维字符数组的大小
于 2022-03-21 10:02:49 首次发布