读书人

如何结尾会多出来一个‘a’

发布时间: 2012-03-15 11:50:38 作者: rapoo

怎么结尾会多出来一个‘a’?
源码:
#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 ' 哪来的??

[解决办法]
我用VS2003运行是正常的 没有a
[解决办法]
你是什么环境,我运行也是没有的。
[解决办法]



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



[解决办法]
vs.net下面也正确。
array[5]没有过界,只不过其值为空。因为char c[N] = "HELLO ";
用单步调试,监视array[5]就可以看出来了。
[解决办法]
你换个环境看看,我们都没有a

读书人网 >C++

热点推荐