注册 登录
编程论坛 新人交流区

[讨论]一道面试题(好像是迅雷的)

tianxia_buaa 发布于 2007-10-25 14:26, 1145 次点击

一共两道题,其中一道是
char b[] = {'x','y','z'};
cout<<strlen(b);

问输出是几,大家可以试试看,sizeof(b)是3,大家可以在char 语句前定义一个 int ,一次赋初值,一次不赋再看看strlen(b)的值是几,我试了,可是不明白。


strlen(b) 的答案应该是7,如果在之前定义一个int 变量的话结果会变成11,并不是一个未定的值,我也不明白是什么原因,好像是和在C++中定义变量时占用的内存有关,具体我也不清楚,大家看看到底是什么原因啊,最好有高手能解答一下啊!

[此贴子已经被作者于2007-10-27 20:09:40编辑过]

11 回复
#2
langbaobao2007-10-27 14:25
#3
BUBsky2007-10-27 14:54
是3吧
#4
BUBsky2007-10-27 15:10
用C#测试还是3
#5
hmxh19842007-10-27 17:31

这是什么意思啊  

#6
rediums2007-10-27 17:55

结果是未定的,
函数strlen把b当作一个指向字符串的指针处理,函数返回指针b到第一个空字符之间的元素个数

#7
雨中飞燕2007-10-27 17:57
unknow.
不同环境不同结果



by 雨中飞燕 C/C++学习讨论群:46520219
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge)论坛:[/url] http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918" target="_blank">https://yzfy.org/
Blog: http://yzfy.programfan.com

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url] [url=http://blog.programfan.com/article.asp?id=24801]请不要写出非int声明的main函数[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918
]C++编写的Windows界面游戏[/url]
#8
succubus2007-10-27 18:22
具体值是多少纯看rp
rp好了还能得到你想要的3
rp差的话,。。。。。。
#9
潇潇鱼2007-10-27 18:27
好像是说字符长度的.3
#10
hexuewu2007-10-27 19:37
#11
tianxia_buaa2007-10-27 20:06
strlen(b) 的答案应该是7,如果在之前定义一个int 变量的话结果会变成11,并不是一个未定的值,我也不明白是什么原因,好像是和在C++中定义变量时占用的内存有关,具体我也不清楚,大家看看到底是什么原因啊,最好有高手能解答一下啊!
#12
yu198502212007-10-27 20:40
不懂。。。。
1