printing of array contents

'lvalue' means left value. It's … got a bit of a history, going mack to when the C language was invented back in the '70s. Basically, it means "something you can put on the left-hand side of an assignment operator".

Consider x = 5+3;

the subexpressions 'x' and '5+3' are both of type int (presumably) and both of them have some sort of integer value. but '5+3' is not an lvalue, so

5 + 3 = x;

Will give you the error.