sizeof求内存分配的长度,但是内存分配的长度,取决于你定义是的长度,是不会改变的,但是你如果用strlen()求长度,就必须保证字符数组最后一个字符为'\0'否则会出错,因为strlen的定义是遇见'\0'结束,如没有'\0'它会继续,因此会有错误; char a[100],sizeof(a) 是 100; strlen(a) 是实际长度