sizeof计算的是变量实际计算的内存空间的大小
strlen计算的是字符串遇到的第一个'\0'结尾符的长度
详细示例如下:
#include <iostream>
using namespace std;
int main()
{
//单独一个字符,输出长度是1
char a1 = 'A';
int len1 = sizeof(a1);
cout<<len1<<endl;
//定义成字符串形式,输出结果是32,每一种编译系统计算出来的这个值可能不一样
string str1 = "abc";
int len2 = sizeof(str1);
cout<<len2<<endl;
//直接输出字符常量,输出结果是4(三个字符+'\0')
int len3 = sizeof("abc");
cout<<len3<<endl;
//输出结果是3 strlen函数计算的是从开头到遇见第一个\0的长度
string str2 = "abc\0efg";
int len4 = strlen(str2.c_str());
cout<<len4<<endl;
//输出结果是4 strlen函数计算的是从开头到遇见第一个\0的长度
string str3 = "abce\0fg";
int len5 = strlen(str3.c_str());
cout<<len5<<endl;
//输出结果是6 strlen函数计算的是从开头到遇见第一个\0的长度
string str4 = "abcefg";
int len6 = strlen(str4.c_str());
cout<<len6<<endl;
system("pause");
return 0;
}
程序运行结果如下: