怎么结尾会多出来一个‘a’?

kakataka 2007-07-19 10:56:09
源码:
#include <iostream>
using namespace std;

template <class T>
void print(T array[], const int count)
{
int i;

for (i=0; i<count; ++i)
{
cout<<array[i]<<" ";
}
cout<<endl;
}

int main()
{
const int N = 6;
int a[N] = {0,1,2,3,4,5};
char c[N] = "HELLO";

print(a,N);
print(c,N);

return 0;
}
屏幕显示:
0 1 2 3 4 5
H E L L O a
Press any key to continue

???:
HELLO 后面的 'a' 哪来的??
...全文
199 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
next163 2007-07-20
  • 打赏
  • 举报
回复
cout<<array[i]<<" ";
到array[5]过界了,未知结果而已。
jxlczjp77 2007-07-20
  • 打赏
  • 举报
回复
VC6.0下输出没有a
gjw310 2007-07-20
  • 打赏
  • 举报
回复
关了工程重新打开编译试试
darkarthur 2007-07-20
  • 打赏
  • 举报
回复
缓存里的?
brucegong 2007-07-20
  • 打赏
  • 举报
回复





print(a,N);
print(c,N);
格式化输出通常不是这么用的





sky3464 2007-07-20
  • 打赏
  • 举报
回复
你换个环境看看,我们都没有a
linfengc 2007-07-20
  • 打赏
  • 举报
回复
vs.net下面也正确。
array[5]没有过界,只不过其值为空。因为char c[N] = "HELLO";
用单步调试,监视array[5]就可以看出来了。
kakataka 2007-07-20
  • 打赏
  • 举报
回复
vc++6.0
右键=》全选 》复制 再粘贴到记事本上也没有‘a'
Giegie 2007-07-19
  • 打赏
  • 举报
回复
你是什么环境,我运行也是没有的。
zbing0203 2007-07-19
  • 打赏
  • 举报
回复
我用VS2003运行是正常的 没有a

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧