对于数组
char a[10]="12345";
sizeof(a) 为10,其在编译阶段就已经计算出来了
strlen(a) 为 5,是实际字符串的长度,不包含'\0'
对于指针
char *s="asdfqwer";
sizeof(s)为4,是一个指针的大小(有个疑问,为什么这时不是字符串的长度?*s按理说不也是一个数组的头指针吗)
sizeof(*s)为1,是一个char的大小
strlen(s)为8,实际字符串长度
对于数组
char a[10]="12345";
sizeof(a) 为10,其在编译阶段就已经计算出来了
strlen(a) 为 5,是实际字符串的长度,不包含'\0'
对于指针
char *s="asdfqwer";
sizeof(s)为4,是一个指针的大小(有个疑问,为什么这时不是字符串的长度?*s按理说不也是一个数组的头指针吗)
sizeof(*s)为1,是一个char的大小
strlen(s)为8,实际字符串长度