strlen 依赖于 string.h
#include <stdio.h>#include <string.h>int main(int argc, const char * argv[]) { char s[] = "hello world"; printf("strlen:%dn", strlen(s)); printf("strlen:%dn", sizeof(s)); return 0;}输出结果:
strlen:11
strlen:12
“hello world” 在内存中末尾会追加 用来标记字符串末尾
sizeof 会计算所有的长度(长度以字节数计,实际上一个char类型占用一个字节)
strlen 只计算实际字符串长度(长度以char类型的数量计,等于字节数),因此长度比sizeof少一个