64,282
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
void main()
{
int i=0;
char t[5];
cout<<strlen(t)<<endl;//这里显示8
for(i=0;t[i]!='\0';i++)
;cout<<i<<endl;//这里显示9
char q[5]="qwer";
cout<<strlen(q)<<endl;//这里显示4 可以理解
for(i=0;q[i]!='\0';i++)
;cout<<i<<endl;//这里显示4
int aa=1;
char*ptr=new char[aa];
cout<<strlen(ptr)<<endl;//这里显示17
aa=18;
ptr=new char[aa];
cout<<strlen(ptr)<<endl;//这里33
aa=1000;
ptr=new char[aa];
cout<<strlen(ptr)<<endl;//这里1004
}
有什么好奇怪的,strlen计算的字串以0终止,没有初始化的内存段谁都不知道0在什么位置,别说是9就是900我都信!