未填充数组(C ++)中的最后一个条目是什么?

时间:2010-06-01 22:46:29

标签: c# arrays

我使用C ++是因为我刚刚开始使用C#而且我不确定是否存在差异。

如果声明一个数组

char arr[10] 

并填写arr [0]到arr [8]的值,将在arr [9]中输入什么值?

空间''?结束'\ n'? '\ 0'?或者它什么都没有?

我问这个是因为我总是使用像这样的战术

char word[20];
for(count = 0 ; count < 20 ; count++)
{
  cout << word[count];
}

打印数组的全部内容,我想知道我是否可以简化它 (例如,如果最后一个条目是'\ 0'),可以使用类似这样的东西

char word[20];
while(word[count] != '\0')
{
  cout << word[count];
}
这样,如果没有填满所有空格,我就不必记住在数组中输入了多少条数据。

如果你知道更快的方式,请告诉我。我倾向于在数组上犯一堆错误。

2 个答案:

答案 0 :(得分:5)

构造字符数组的C#语法是:

char[] arr = new char[10];

数组中的所有值都将初始化为'\0'

对于您不知道需要多少个字符的情况,也许List<char>会更好。另一个需要考虑的选择是StringBuilder。如果您不需要可变性,请使用string

答案 1 :(得分:2)

在C ++中,声明为char word[20]的数组在每个条目中都会有垃圾。它没有像C#这样的默认值,但可能只是拥有以前占用内存中特定位置的任何内容。简而言之,除非您自己明确设置,否则不要相信该值。