sizeof
sizeof是分配给对象实际所占的内存空间的大小,不受里面的内容限制。
sizeof(…)是****运算符,由于是在编译时计算的,所以不能用来计算经过动态分配的内存空间的大小。实际上使用sizeof来返回类型以静态分配的对象、结构体、数组的空间,返回值和其内容没有关系。
strlen
strlen是计算字符串的长度,以‘ \0 ’为字符串的结束标志。返回从第一个地址开始到‘ \0 ’之前的长度。
strlen(…)是函数,是在运行期间计算的。其参数必须是字符型指针。但是当以数组名作为参数时,实际上数组就隐式转换为字符指针类型。
举个例子:
char str[20] = "abcd";
cout << sizeof(str) << endl;
cout << strlen(str) << endl;