@tex620

Как работает это выражение в Си?

Как работает подобное выражение?
Впервые вижу и не могу понять что это за структура и как она работает?
Расскажите или хотя бы ссылки покидайте.
main() {
  int array[] = {1,2,3}
  printf("%d", (4,(1,2)[array]))
  return 0;
}


Непонятен конкретно этот момент (4,(1,2)[array])
Что это?
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Работает в Си так же как в С++.
Тут надо немного теории:
Как мы обычно индексируем массив: array[2]
Компилятор это дело приводит к виду: *(array + 2)
А теперь, что будет если написать вот так: *(2 + array)?
Все нормально будет, результат тот же. При этом такое выражение, если переписать в индексном виде будет иметь вид: 2[array]
Все остальное в приведенном варианте printf - декорация для запудривания мозгов - обычная операция ,
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы