C - 字符串的最佳实践

标签 c arrays string

<分区>

以下哪项是使用 C 字符串的最佳实践?

char full_name[] = "foo boo";
char * full_name = "foo boo";

从安全的角度来看,它们各自的优缺点是什么?

最佳答案

使用 strings 是一项复杂的任务,您显示的选项都没有任何优点或缺点。这实际上取决于您要实现的解决方案。

char full_name[] = "foo boo";

是一个包含以下内容的数组

{'f', 'o', 'o', ' ', 'b', 'o', 'o', '\0'}

你可以修改它但它不能增长,并且

char *full_name = "foo boo";

是一个字符串字面量,不能修改也不能增长,最好这样定义

const char *full_name = "foo boo";

尽管这不能完全防止修改它,但它有助于避免意外地进行修改。

修改字符串文字是可能的,这是错误的,因为它调用了 undefined behavior .

关于C - 字符串的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32779894/

相关文章:

c - 如何解决 MISRA C :2012 Rule:8. 4?

c++ - 逐行 c - Linux ubuntu 中的 c++ 代码调试

c++ - 优化 Microsoft Visual Studio 编译器生成的程序集

arrays - 在 codeigniter 中将数组从 View 发送到 Controller

python - 如何将带有字符串作为行的 Pandas 数据转换为该字符串中的每个单词作为同一列中的行?

c - 为什么我们需要文件描述符和文件指针

c - 在C中用循环填充函数数组

javascript - 用一组重量平衡秤

c++ - 如何修改 lambda 中的字符串 vector

python重新分割所有空格和标点符号,撇号除外