一、sizeof()
sizeof
是一个操作符,它在编译期间确定
的,返回的是静态大小
。
它可以应用于基本类型、类类型、数组和指针等。
例如:sizeof(int) 或 sizeof(array)。
对于数组,sizeof 返回整个数组的大小(包括所有元素)。
对于指针,sizeof 返回指针本身的大小(通常取决于平台和编译器,例如在32位系统上通常是4字节,在64位系统上通常是8字节)。
int a = 0;
std::cout << sizeof(a) << std::endl; // 输出 int 类型的大小
int arr[10];
std::cout << sizeof(arr) << std::endl; // 输出整个数组的大小
int* ptr = &a;
std::cout << sizeof(ptr) << std::endl; // 输出指针的大小
二、strlen()
strlen
是一个函数
,定义在 < cstring > 或 < string.h > 头文件中。
它用于获取C风格字符串(以null结尾的字符数组)的长度(不包括null终止符
)。
strlen 在运行时计算字符串长度,通过遍历字符串直到遇到null字符。
const char* cstr = "Hello";
std::cout << strlen(cstr) << std::endl; // 输出 5
三、size
size()
通常是一个成员函数
,用于获取容器(如 vector、string、list 等)中的元素数量。size() 在运行时返回结果
。
它返回的是容器中元素的个数,而不是容器本身在内存中的大小(以字节为单位)。
std::string str = "Hello";
std::cout << str.size() << std::endl; // 输出 5
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << vec.size() << std::endl; // 输出 5
四、length()
length()
通常是 std::string 类的一个成员函数
,与 size() 功能相同,返回字符串中字符的个数。
在所有标准C++库中,std::string 的 length() 和 size() 成员函数具有相同的行为。
string str = "Hello";
cout << str.length() << std::endl; // 输出 5
// 注意:str.length() 和 str.size() 是等价的
五、总结:
- sizeof() 用于在编译时确定类型或对象的大小(以字节为单位)。
- strlen() 用于在运行时获取C风格字符串的长度(不包括null终止符)。
- size() 和 length() 通常作为容器(如 std::string)的成员函数,用于在运行时获取容器中元素的数量。在 std::string 的情况下,size() 和 length() 是等价的。