gpt4 book ai didi

c++ - C++ 中的 '\0' 是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:51 31 4
gpt4 key购买 nike

我正在尝试将一个巨大的项目从 C++ 翻译成 Delphi,并且我正在完成翻译。我留下的东西之一是 '\0' 怪物。

if (*asmcmd=='\0' || *asmcmd==';')

其中 asmcmd 是 char*。

我知道\0 在 C++ 中标记数组类型的结尾,但我需要知道它是一个字节。是0吗?

换句话说,下面的代码是否等同于 C++ 行?

if(asmcmd^=0) or (asmcmd^=';') then ...

其中 asmcmd 是 PAnsiChar。

你不需要知道 Delphi 来回答我的问题,但告诉我\0 作为字节。那也行。 :)

最佳答案

'\0'等于 0 .它是 C 的遗留物,它根本没有任何字符串类型,而是使用 char 数组。空字符用于标记字符串的结尾;回想起来这不是一个非常明智的决定 - 大多数其他字符串实现在某处使用专用计数器变量,这使得找到字符串的结尾 O(1) 而不是 C 的 O(n)。

*asmcmd=='\0'只是一种复杂的检查方式 length(asmcmd) == 0asmcmd.is_empty()用假设的语言。

关于c++ - C++ 中的 '\0' 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3423578/

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