我使用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];
}
这样,如果没有填满所有空格,我就不必记住在数组中输入了多少条数据。
如果你知道更快的方式,请告诉我。我倾向于在数组上犯一堆错误。
答案 0 :(得分:5)
构造字符数组的C#语法是:
char[] arr = new char[10];
数组中的所有值都将初始化为'\0'
。
对于您不知道需要多少个字符的情况,也许List<char>
会更好。另一个需要考虑的选择是StringBuilder
。如果您不需要可变性,请使用string
。
答案 1 :(得分:2)
在C ++中,声明为char word[20]
的数组在每个条目中都会有垃圾。它没有像C#这样的默认值,但可能只是拥有以前占用内存中特定位置的任何内容。简而言之,除非您自己明确设置,否则不要相信该值。