[Uneex] Re: [Uneex] Re: [Uneex] Что позволяет C

Vladimir Prus uneex@cs.msu.su
Mon, 17 Dec 2001 12:10:35 +0300


Mike E. Matsnev wrote:
> On Mon, Dec 17, 2001 at 11:35:46AM +0300, Peter Novodvorsky wrote:
> >     Mike> Даа...  Из K&R: ======= Rather more surprising, at first
> >     Mike> sight, is the fact that a reference to a[i] can also be
> >     Mike> written as *(a+i). In evaluating a[i], C converts it to
> >     Mike> *(a+i) immediately; the two forms are equivalent.  =======
> >
> > Однако про i[a] тут ничего сказано не было.
>
> Тут сказано, что для любых X и Y, X[Y] преобразуется в *(X+Y).

Какой ужас! Неужели "abc"[2] == 2["abc"] даже в ANSI C99? 
"gcc-3.0 -std=iso9899:1999 foo.c" такое позволяет!
Хорошо, что не приходится писать на С!

- Volodya