Из стандартов C # 6.7.9p10:
Если объект с автоматической продолжительностью хранения не инициализирован явно, его значение неопределенно.
blockquote>Чтобы инициализировать все элементы массива с помощью
0
, вы можете сделать:int array[10] = {0};
Объект типа
int
, который имеет статическую или длительность хранения потоков и не инициализирован явно, инициализируетсяzero
, Таким образом, вы можете ожидать, что значение всех элементов массиваarray
будет0
только в том случае, если оно имеет статическую продолжительность хранения, иначе значение элементов массиваarray
будет неопределенным, и вы должны их инициализировать явно с0
.
Я думаю, когда Вы запускаете литеральное число с 0, это интерпретирует его как восьмеричное число, и Вы не можете иметь '8' в восьмеричном числе.
Обратите внимание, что "^" символ по ошибке указывает точно на ошибочный столбец. Вместе с номером строки это указывает точно на цифре 8. Это может помочь привести Вас к какой предложенный Jeremy.
Просто удалите начальные нули.
Первый нуль делает число восьмеричным.