gpt4 book ai didi

c++ - 为什么需要空终止符?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:56:45 26 4
gpt4 key购买 nike

过去几天我一直在自学 C++,为我的 CS 专业大一做准备。我现在正在使用 C 风格的字符串,想知道空终止符的意义是什么。

我知道这是必要的,但我想我只是不从根本上理解为什么字符串不会仅在其最后一个字符处结束。

最佳答案

I just don't fundamentally understand why a string wouldn't just end on its last char.

有几种方法可以知道“最后一个字符”在哪里:

  1. 将字符串中的字符数与字符串的字符分开存储,
  2. 放置一个标记来指示字符串的最后一个字符,或者
  3. 将指向字符串最后一个字符的指针与字符串的字符分开存储。

C选择第二条路线;其他语言(Pascal等)选择第一条路线。 C++ std::string 的一些实现选择了第三条路线*


* 甚至使用第一种或第三种方法的 std::string 实现也会以 null 终止它们的缓冲区,以与库的 C 部分兼容。这是确保 c_str() 所必需的返回有效的 C 字符串。

关于c++ - 为什么需要空终止符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17371157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com