c++ - "terminated by a zero"是什么意思?

标签 c++ c string

我正在学习 C/C++,突然出现很多我不熟悉的术语。其中之一是以零结尾的变量或指针。内存中的一个空间以零结尾是什么意思?

最佳答案

以 ASCII 格式获取字符串 Hi。它在内存中最简单的表示是两个字节:

0x48
0x69

但是那段内存在哪里结束呢?除非您还准备传递字符串中的字节数,否则您不知道 - 内存片段本质上没有长度。

所以 C 有一个标准,字符串以零字节结尾,也称为 NUL 字符:

0x48
0x69
0x00

字符串现在明确为两个字符长,因为在 NUL 之前有两个字符。

关于c++ - "terminated by a zero"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667648/

相关文章:

c++ - lib OSMesa 屏幕外上下文创建在 C++ 中失败,但仅在静态链接时

c - GLib 哈希表 - 无法查找键/值

c - 在 C 中使用 SOAP_ENV__Header 设置 soap header

python - 检查字符串是否为 None、空或仅包含空格

c++ - 用于转换多个参数的模板函数

c++ - 将 BSTR 转换为 LPCWSTR

c - printf 不输出从 scanf 读取的内容

java - 扫描字符串直到找到字符串中的特定字符

java - 字符串比较无法正常工作?

c++ - 解析日期失败