主要观点:介绍了 sizeof() 和 strlen() 的用法及区别。sizeof() 可用于获取结构、变量等的大小,也可用于字符串,且对于 #define 字符串常量,其值为字符串的硬编码长度;strlen() 用于获取字符串的长度,需扫描字符串内存找结尾的 '0' 字节计数。
关键信息:
- 示例代码展示了 sizeof() 用于结构和字符串的情况,如 sizeof(MyStruct) 和 sizeof(foo),以及 sizeof(VERSION_STRING)。
- 同样展示了 strlen() 用于字符串常量和数组的情况,如 strlen(VERSION_STRING) 和 strlen(versionString)。
- 提到 Dave 的评论,指出 sizeof 字符串字面量包含终止的 null 字符,比 strlen 多 1。
重要细节: - C 字符串结尾有 0 字节,如 "hello" 实际为 "hello\0",标准 C 字符串函数以此判断结束。
- 使用 sizeof() 复制字符串时,要减去 1 以避免 strlen() 计数的开销,如 memcpy(buffer, STRING, sizeof(STRING)-1)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。