sizeof与strlen的区别
strlen只计算字符串长度,不是类型占内存的大小
1. char *ss="0123456789";
sizeof(ss)=4 //ss是指向字符串常量的字符指针,在32位机上所有指针
类型变量占用内存字节数都为4
sizeof(*ss)=1 //*ss是指第一个字符大小
2. char ss[]="0123456789";
sizeof(ss)=11 //ss是数组,计算到“\0”位置1*(10+1)
sizeof(*ss)=1 //ss是第一个字符
3. char ss[100]="0123456789";
sizeof(ss)=100 //ss表示内存中预分配的大小100*1
strlen(ss)=10 //它的内部实现是循环计算字符串长度,直到“\0”为止
4. int ss[100]="0123456789";
sizeof(ss)=400 //ss表示内存中的大小4*100
strlen(ss) //错误,strlen参数只能是char*,且必须以“\0”结尾的