以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  一个基础的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=67370)


--  作者:gdsatan
--  发布时间:9/17/2008 9:17:00 PM

--  一个基础的问题
#include <stdio.h>
#include <string.h>
main()
{
 char a[]={'a','c','e'};
 printf("%d",strlen(a));
}
用wintc编译运行得到的是11而不是3,希望大家能详细的说说自己的看法。
--  作者:oldnwind
--  发布时间:10/5/2008 10:27:00 AM

--  
姑妄猜测:

字符数组中存入三个单字节字符,未明确加入NULL终结符。
也许后续空间中存在垃圾数据,总之直到遇到第一个出现的NULL为止,所以结果不是预期的3而是其他不可预测值(也有得3的可能)。

纸上谈兵者请达人指正。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms