【发布时间】:2015-05-24 17:37:10
【问题描述】:
我注意到,当我在 C 语言中创建一个字符数组来保存字符串时,我总是需要在末尾添加一个空零作为终止符。例如:
char Month[10];
Month[0] = 'M';
Month[1] = 'a';
Month[2] = 'r';
Month[3] = 'c';
Month[4] = 'h';
Month[5] = '\0';
这里我需要添加Month[5] = '\0'以使char数组显示正确的结果。如果我忽略空零,它将给出结果March_\377。但在 Java 中,我仍然会得到 March 而不添加空零。我想知道 C 和 Java 如何以不同的方式处理这种情况?
【问题讨论】:
-
在 Java 中,所有字符串都是不可变的对象。在 C 中,您可以通过使指向
char的指针指向字符串文字来重新创建相同的内容。但是,您的问题似乎过于宽泛,因为每种语言都有其相似之处和不同之处。 -
@Edyyy 你自己知道的答案:他们确实以不同的方式处理这种情况。:)
-
@Vlad 来自莫斯科,这不仅仅是一个随意的选择。拥有一个具有长度属性的 String 对象可以避免遍历整个字符串来查找 '\0'