char str[20]="0123456789";
int a=strlen(str);
int b=sizeof(str);
a 计算的是以0x00结束的字符串(不包括0x00结束符),所以a=10;
b 计算的则是分配是数组str[20]所占的内存空间的大小,不受里面存储内容的改变而改变,即b=20;
4.如果要计算指针指向的字符串的长度,则一定要用strlen
char* s="0123456789";
int a=strlen(s);
int b=sizeof(s);
a 计算的是指针占用的内存,32位系统中是4
b 计算的是s所指向的字符串 的长度,为10.
原文地址:http://blog.csdn.net/u010177286/article/details/46524419