char A[200],然后初始化,为何strlen(A)等于203?
#include <stdio.h> #include <string.h>
void main()
{
char * p = new char[10];
printf("%d",strlen(p));
delete [] p;
}
//输出结果为105,我把char[100]改为char[10]时,输出则是14,为什么?
//对strlen()了解的真是一知半解,谁能指点我一下?谢了。
///////////////////////////////////////////////////////////////////
现把程序改为:
#include <iostream>
#include <string>
using namespace std;
const int size = 350;
int main()
{
char A[size];
for(int i = 0; i < size; i++)
{
A[i] = 's';
}
cout << strlen(A) << endl;
cout << sizeof(A) << endl;
return 0;
}
我的电脑上输出结果是355 350
然后我再把char A[350];改为char A[200];输出结果变为203 200
strlen()和sizeof()应该只差一个\0的长度吧? 所以我还是没弄明白。
[[it] 本帖最后由 crazycoder 于 2008-11-26 21:10 编辑 [/it]]