Здравствуйте, Павел Кузнецов, Вы писали:
>> Получается, что выражения 1 и 2 равнозначны, и res1 и res2 равны?
>> Объясните, почему?
>>
>> >> char i = 1;
>> char res1 = i["test"]; // 1
>> char res2 = "test"[i]; // 2
>>
ПК>Потому что для встроенных типов стандарт определяет выражения E1[E2] эквивалентными выражениям *((E1)+(E2)) — соответственно, порядок значения не имеет (5.2.1).
Т.е.Вы хотите сказать, что хотя идексирование и выглядит как асимметричная операция, для встроеных типов она также будет коммутативной операцией?