Назначение массива char значения в C

в чем разница между:

char fast_car[15]="Bugatti";

и

char fast_car[15];
fast_car="Bugatti";

потому что второй результат с ошибкой компиляции:

ошибка: несовместимые типы при назначении типа 'char[15]' из типа 'char *'

в то время как первая работает нормально. Было бы полезно поместить строку в массив в другом месте, чем инициализация массива.

2 ответов


первое-это инициализации вторая -задание. Поскольку массивы не являются изменяемыми значениями в C, вы не можете назначить им новые значения.

ты изменить содержимое блока, вы просто не можете сказать fast_car = .... Таким образом, содержимое модифицируется,сами массивы не являются.


используя тот же символ = для этих широко различных понятий имеет спорное значение.


char fast_car[15]="Bugatti";

Он говорит, что fast_car является массивом и инициализируется строкой "Buratti". Правильное Использование:

char fast_car[15];
fast_car="Bugatti";

первая строка является объявлением массива char (не инициализируется). Во-вторых, fast_car здесь-это просто адрес(указатель) первого элемента в этом массиве char. Назначение указателя fast_car массиву char "Buratti" неверно по типу разности значений.