sizeof 是被测试类型占用字节的大小
char str[] = "0123456789abcdef";
char str2[100] = "0123456789abcdef";
sizeof(p) 只是 4(或8与操作系统有关,32位系统应当只是4)
strlen(p) 是16个长度
sizeof(str) 是17
strlen(str) 是16
sizeof(str2) 是100
strlen是以\0为结束符的字符串的串长度(不含结束符)
比如吧:
注意一个字符型数据占一个字节,也就是说sizeof(char) = 1
char *p = "0123456789abcdef";char str[] = "0123456789abcdef";
char str2[100] = "0123456789abcdef";
sizeof(p) 只是 4(或8与操作系统有关,32位系统应当只是4)
strlen(p) 是16个长度
sizeof(str) 是17
strlen(str) 是16
sizeof(str2) 是100
strlen(str2) 是16
有的同学就问了为啥sizeof(p)是4而不是17呢?char *p = "0123456789abcdef";是定义一个字符型指针指向后面的字符串,而一个字符型指针占4个字节,所以sizeof(p) = sizeof(*char) = 4,一定要与char str[] = "0123456789abcdef";对比看看