1, c/c++
如果是字符数组没有赋初值,则debug和release版的strlen(str)结果是不一样的.
sizeof怎样都是分配的那样。
#include <iostream>
using namespace std;
void main()
{
char str[10];
cout << str << endl;
cout << "len is " << strlen(str) << endl;
cout << "len is " << sizeof(str) << endl;
getchar();
}

为了debug和release的结果一样最后定义完变量就初始化,不然可能程序出错了很难找到那里有问题。
关于strlen和sizeof的详细资料看微软的官方文档
MSDN: strlen, sizeof
strlen
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。
2, sizeof与strlen的区别