An lvalue was defined as an expression to which a value can be assigned. Is an array
an expression to which we can assign a value? The answer to this question is no,
because an array is composed of several separate array elements that cannot be treated
as a whole for assignment purposes.
The following statement is therefore illegal:
int x, y; x = y;
Additionally, you might want to copy the whole array all at once. You can do so
using a library function such as the memcpy() function, which is shown here:
memcpy(x, y, sizeof(y));
It should be noted here that unlike arrays, structures can be treated as lvalues.
Thus, you can assign one structure variable to another structure variable of the
same type, such as this:
typedef struct t_name
NAME my_name, your_name;
your_name = my_name;