C语言中求字符串的长度和所占内存长度的两个程序如下:怎么理解??

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类型的变量只占一个字节!
希望可以帮到你,不会的可以问我。希望采纳嘿嘿
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-03
字符串是字符数组加一个结束字符在后面。因此sizeof比strlen要大一,没有结束字符的叫字符数组。追答

你忽略了多字节字符和wchar_t,不能单纯的认为字符串所占的内存大小是strlen+1

你指教的很对,汉字是双字节的,呵呵,我最近学的都是英文的,从来没输入过汉字。受教。

本回答被提问者采纳
第2个回答  2014-03-04
字符串结尾还有个‘/0'

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网