int main()
{
char preorder[] = {'a','b','d','c','e','f'};
char* postorder = "abcdef";
char inorder[] = "dbaecf";
cout<<strlen(preorder)<<"\t"<<sizeof(preorder)<<endl;
cout<<strlen(postorder)<<"\t"<<sizeof(postorder)<<endl;
cout<<strlen(inorder)<<"\t"<<sizeof(inorder)<<endl;
cout<<endl;
/*
char* tmp = inorder;
while(*tmp != '\0'){
cout<<*tmp<<endl;
tmp++;
}*/
buildTree(inorder,preorder);
}
结果是:
19 6
6 4
6 7//多了'\0'
strlen是按照'\0'的位置计算的,所以对 preorder并不适用;strlen并不计算'\0'
而对于char* sizeof计算的是指针的长度,所以为4.
sizeof 是计算'\0'的