В вашем коде one
является переменной типа массива. Таким образом,
one = real;
При попытке присвоить тип массива, который недопустим.
Чтобы уточнить, имена массивов не являются модифицируемыми lvalues, а оператор присваивания работает только с изменяемыми значениями lvalues как операндом LHS.
Цитирование C11
, глава §6.5.16
An assignment operator shall have a modifiable lvalue as its left operand.
, а затем, глава §6.3.2.1 (emphais рудник)
A modifiable lvalue is an lvalue that does not have array type, does not have an incomplete type, does not have a const qualified type, and if it is a structure or union, does not have any member (including, recursively, any member or element of all contained aggregates or unions) with a const qualified type.
Вы должны использовать strcpy()
, чтобы скопировать содержимое к массиву.
Попробуйте 'STRCPY (один, реальный);'. –
И BTW, вы также можете написать 'char one [] =" GEORGE "'. –
Связано: [Почему не могут быть назначены массивы того же типа и размера?] (Http://stackoverflow.com/questions/14826952/why-cant-arrays-of-same-type-and-size-be-assigned) –