c - c语言中sizeof和strlen的区别

标签 c

<分区>

Possible Duplicate:
Different answers from strlen and sizeof for Pointer & Array based init of String

谁能帮我理解 C 编程中 sizeof 方法和 strlen 方法的区别?

最佳答案

strlen() 用于获取存储在数组中的字符串的长度。

sizeof() 用于获取任何类型数据的实际大小(以字节为单位)。

此外,sizeof() 是一个编译时表达式,它为您提供类型或变量类型的大小。它不关心变量的值。

strlen() 是一个函数,它接受一个指向字符的指针,并从这个字符开始遍历内存,寻找一个空字符。它在找到空字符之前计算字符数。换句话说,它为您提供了 C 风格的空终止字符串的长度。

两者完全不同。在 C++ 中,你不需要太多,strlen() 用于 C 风格的字符串,应该用 C++ 风格的 std::strings 代替,而 sizeof 的主要应用() 在 C 中作为函数的参数,如 malloc()memcpy()memset(),所有你不应该在 C++ 中使用它(使用 new、std::copy()std::fill()constructors) .

关于c - c语言中sizeof和strlen的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590332/

相关文章:

c - 如何确定路径是否在目录内? (POSIX)

c++ - 通过c/c++程序连接wifi

c - 为什么要将C文件拆分成多个

c - 使用降雪包在 R 中使用 C-within-R 函数进行并行计算。问题 : Mac shows loading wheels and almost freezes

C程序未显示预期结果

c - 读取 C 中的按键;前任。 : Arrow keys, 回车键

c# - 数学表达式求值器的简单库或实现

c - 通过对实际节点进行排序而不仅仅是通过交换节点值来对链表进行排序

c - 在 C 代码中回归运行时相关降级的最佳方法

c - ANSI C : Passing array by value generates weird error I can not solve