У моего имени шесть букв, а у второго четыре.
Неправильный код создаст и напечатает:
char myName[4][6] = {{'x', 'x', 'x', 'x', 'x', 'x'}, {'x', 'x', 'x', 'x'}};
Но правильный код не будет:
char myName [6] [4] = {{'x', 'x', 'x', 'x', 'x', 'x'}, {'x', 'x', 'x', 'x'}};
Есть ли причина, по которой:
[4]
применяется к первому набору символов?[6]
применяется ко второму набору символов? Я использую самую последнюю версию Xcode. Есть ли какой-то глюк, когда массивы инвертированы или что-то в этом роде? Я посмотрел вокруг, но не могу найти ничего, объясняющего это.
Это потому что char myName[4][6]
представляет собой массив из четырех элементов char
массивы (так что ваши данные будут соответствовать). в то время как char myName[6][4]
это шесть массивов из четырех char
массивы (которые не будут соответствовать вашим шести char
массив).
символ [0] [0] [1] [0] [2]
символ [1] [1] [1] [1] [2]
А также, вы можете поместить массив в массив. Так что, если вы себе это представляете, у вас могут быть страницы с массивами. Просто ссылка сделать что-то вроде ..
int a[0] = b[4];
Это поместит b [4] […] в одну ячейку a [0]. Полезно для игр или еще много чего.