sizeof()、strlen()、length()、size()详解和区别
时间: 2024-05-10 09:17:31 浏览: 121
这四个函数的作用都与获取数据的长度有关,但具体用法和适用范围有所不同。
1. sizeof()
sizeof() 是 C/C++ 中的一个操作符,用于获取数据类型或变量在内存中所占的字节数。例如:
```c++
int a;
size_t size = sizeof(a);
```
这里 size 变量的值为 4,因为 int 类型在大多数系统上占用 4 个字节。
2. strlen()
strlen() 是 C/C++ 中的一个函数,用于获取字符串的长度,不包括字符串末尾的 null 字符。例如:
```c++
char str[] = "hello";
size_t length = strlen(str);
```
这里 length 变量的值为 5,因为 "hello" 这个字符串共有 5 个字符。
3. length()
length() 是 C++ STL 中的一个函数,用于获取容器(如 std::string、std::vector 等)中元素的个数。例如:
```c++
std::string str = "hello";
size_t length = str.length();
```
这里 length 变量的值为 5,因为 "hello" 这个字符串共有 5 个字符。
4. size()
size() 是 C++ STL 中的一个函数,用于获取容器(如 std::string、std::vector 等)中元素的个数。与 length() 函数相似,但返回值类型不同,size() 函数返回的是一个无符号整数类型(如 size_t),而 length() 函数返回的是一个有符号整数类型(如 int)。例如:
```c++
std::vector<int> vec = {1, 2, 3, 4, 5};
size_t vec_size = vec.size();
```
这里 vec_size 变量的值为 5,因为 vec 容器中共有 5 个元素。
总结:
| 函数/操作符 | 适用范围 | 返回值类型 | 作用 |
| --- | --- | --- | --- |
| sizeof() | 任何数据类型或变量 | 无符号整数类型(如 size_t) | 获取数据类型或变量在内存中所占的字节数 |
| strlen() | 字符串 | 无符号整数类型(如 size_t) | 获取字符串的长度 |
| length() | 容器(如 std::string、std::vector 等) | 有符号整数类型(如 int) | 获取容器中元素的个数 |
| size() | 容器(如 std::string、std::vector 等) | 无符号整数类型(如 size_t) | 获取容器中元素的个数 |
阅读全文