我是 C++ 的新手,我开始怀疑,如果在定义 char 数组时省略空字符会怎样?
例如,如果我用空字符定义一个字符数组:
char myarray[] = {'a', 'b', 'c', '\0'};
然后我在没有空字符的情况下定义它:
char myarray[] = {'a', 'b', 'c'};
在这种情况下,空字符的重要性是什么?上面示例中缺少空字符可能会导致以后出现一些问题吗?...您是否建议在以这种方式定义 char 数组时始终包含或排除空字符?
感谢您的帮助:)
最佳答案
这意味着任何需要 char*
的东西作为参数,期望它是一个空终止字符串,将调用未定义的行为,并以某种方式失败*。
一些例子是strlen
, std::string(const char*)
构造函数,std::ostream operator<<
特化char*
...
* 未定义的行为意味着它甚至可以“正确”工作,但不能保证这是可重现的。
关于c++ - 初始化char数组时空字符的重要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19787718/