int fun(char *s)
{ char *t=s;
while(*t++);
return(t-s);
}
int aaa(char *s)
{ char *t=s;
while(*t++) ;
t--;
return (t-s);
}
sizeof(a[5])是数组中第6个元素的长度,应该是1。但是你的数组长度为5,最后一个元素是a[4]哦!
要求整个数组的长度直接用数组名就好了,相当于直接把数组的首地址传给函数strlen,
strlen(a)就是求得的整个数组占用的字节长度,而且应该为5而不是7。因为每个char类型的变量只占一个字节!
希望可以帮到你,不会的可以问我。希望采纳嘿嘿
要求整个数组的长度直接用数组名就好了,相当于直接把数组的首地址传给函数strlen,
strlen(a)就是求得的整个数组占用的字节长度,而且应该为5而不是7。因为每个char类型的变量只占一个字节!
希望可以帮到你,不会的可以问我。希望采纳嘿嘿
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-03-03
字符串是字符数组加一个结束字符在后面。因此sizeof比strlen要大一,没有结束字符的叫字符数组。追答
你忽略了多字节字符和wchar_t,不能单纯的认为字符串所占的内存大小是strlen+1
你指教的很对,汉字是双字节的,呵呵,我最近学的都是英文的,从来没输入过汉字。受教。
本回答被提问者采纳第2个回答 2014-03-04
字符串结尾还有个‘/0'