gpt4 book ai didi

c++ - ISO C 或 C++ 标准是否指定 `const char *` 应该是 NULL 终止的字符串?

转载 作者:行者123 更新时间:2023-12-05 08:29:57 41 4
gpt4 key购买 nike

我一直看到const char *是这样使用的,libc对这个效果做了假设。

在 API 审查期间,我说 const char * 应该被假定为一个 NULL 终止的字符串,然后有人说它不一定是 - 所以没有可以做出假设。

我们仍然可以进行防御性假设,但我们可以编写更少的代码。

考虑到所有以这种方式使用它的 libc 函数,C 或 C++ ISO 标准中是否有任何内容表明它必须是一个NULL 终止字符串?

最佳答案

关于指向 const char 的指针所包含的地址或起始地址的内存,我们可以假设是上下文相关的。

const char指针经常用作指向 ASCII 文本(“字符串”)的指针,但并非必须如此;这样的指针也可以指向任意数据或单个字符。

依赖于空终止字符串的 API 必须如此说明,它们确实如此(例如 https://linux.die.net/man/3/strcpy)。

关于c++ - ISO C 或 C++ 标准是否指定 `const char *` 应该是 NULL 终止的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66955981/

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