strlen&&sizeof
sizeof 和 strlen 有以下区别: sizeof 是一个操作符,strlen 是库函数。 sizeof 的参数可以是数据的类型,也可以是变量,而 strlen 只能以结尾为‘\ 0‘的字符串作参数。 编译器在编译时就计算出了 sizeof 的结果。而 strlen 函数必须在运行时才能计算出来。并且 sizeof 计算的是数据类型占内存的大小,而 strlen 计算的是字符串实际的长度。 数组做 sizeof 的参数不退化,传递给 strlen 就退化为指针了。 int _tmain(int argc, _TCHAR* argv[]) { //strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0', // 如果你只定义没有给它赋初值,这个结果是不定的 // 它会从aa首地址一直找下去,直到遇到'\0'停止 //而sizeof()返回的是变量声明后所占的内存数,不是实际长度, //此外sizeof不是函数,仅仅是一个操作符,strlen是函数。 char aa[10]; std::cout << strlen(aa) << endl; //结果是不定的 char bb[10]={'\0'}; std::cout << strlen(bb) << endl; //结果为0 char cc[10] = "hui"; std: