sizeof是运算符,计算内存字节数,如数组含'\0'共6字节,指针固定8字节;strlen是函数,运行时统计字符数至'\0'前,仅计有效字符。

sizeof 和 strlen 在 C++ 中都用于获取“大小”或“长度”,但它们的用途、机制和结果完全不同。理解它们的区别对正确处理字符串和内存操作至关重要。
sizeof 是一个编译时运算符,用来获取变量或数据类型在内存中所占的字节数。它不关心内容,只关注类型和分配的空间。
// 示例代码
#include <iostream>
using namespace std;
int main() {
char str[] = "hello";
cout << sizeof(str) << endl; // 输出 6(5个字符 + 1个'\0')
char *ptr = str;
cout << sizeof(ptr) << endl; // 输出 8(指针大小)
}
strlen 是 <cstring> 头文件中的函数,用于计算字符串的实际字符数,直到遇到第一个 ' strlen 是 <cstring> 头文件中的函数,用于计算字符串的实际字符数,直到遇到第一个 '\0' 结束符为止。它只适用于以 '\0' 结尾的字符数组或字符串。 strlen 是 <cstring> 头文件中的函数,用于计算字符串的实际字符数,直到遇到第一个 '\0' 结束符为止。它只适用于以 '\0' 结尾的字符数组或字符串。
// 示例代码
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[] = "hello";
cout << strlen(str) << endl; // 输出 5
char empty[] = "";
cout << strlen(empty) << endl; // 输出 0
}
// 函数传参示例
void func(char arr[]) {
cout << sizeof(arr) << endl; // 输出 8(实际是 char* 的大小)
}
基本上就这些。关键点是:sizeof 看内存,strlen 看字符;一个是运算符,一个是函数;一个算字节,一个算字符长度。
立即学习“C++免费学习笔记(深入)”;
以上就是c++++中sizeof和strlen的区别_c++ sizeof与strlen区别解析的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号