Subscripting is allowed on arrays that are not lvalues, even though the unary `&' operator is not. For example, this is valid in GNU C though not valid in other C dialects:
struct foo {int a[4];};
struct foo f();
bar (int index) { return f().a[index]; }Created Wed Sep 1 16:42:19 2004 on bee with info_to_html version 0.9.6.