<分区>
以下哪项是使用 C 字符串的最佳实践?
char full_name[] = "foo boo";
char * full_name = "foo boo";
从安全的角度来看,它们各自的优缺点是什么?
<分区>
以下哪项是使用 C 字符串的最佳实践?
char full_name[] = "foo boo";
char * full_name = "foo boo";
从安全的角度来看,它们各自的优缺点是什么?
最佳答案
使用 c 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/