Форум программистов, компьютерный форум CyberForum.ru

Вопрос по синтаксису - C++

Восстановить пароль Регистрация
 
Kotte
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 17
03.12.2010, 14:45     Вопрос по синтаксису #1
Народ подскажите где можно прочесть про такие фишки.
или растолкуйте почему индекс и имя массива можно переставить.

int x[] = {1,2,3,4,5};
int y = 4[x]; //получим y == 5
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2010, 14:45     Вопрос по синтаксису
Посмотрите здесь:

C++ Вопрос по синтаксису С++
Подскажите хороший справочник по синтаксису C++
Тупой вопрос. C++
Перегрузка операции индексирования, вопрос по синтаксису C++
C++ Вопрос по ООП
небольшой вопрос..... C++
Вопрос по синтаксису языка C++
вопрос по синтаксису/типам C++
Пояснение по синтаксису C++
Подскажите по синтаксису C++
C++ Различные по синтаксису способы вызова конструктора
C++ Подскажите по синтаксису for

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.12.2010, 14:57     Вопрос по синтаксису #2
где-то уже была эта тема, компилятору потому что пофиг где стоит имя массива а где индекс. Это не фишки, а изврат
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.12.2010, 17:11     Вопрос по синтаксису #3
Цитата Сообщение от Kotte
почему индекс и имя массива можно переставить
потому что 4 + x == x + 4
x == &x[0]
есть документация к языку, называется стандарт
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
04.12.2010, 12:04     Вопрос по синтаксису #4
Сам когда-то задавал этот вопрос)))
Всё дело в том, что в конечном итоге конструкция x[i] разворачивается в *(x + i) (т.е. в натуральную работу с указателями). А значит, конструкция i[x] развернётся в *(i + x), т.е. в итоге будет то же самое.
Yandex
Объявления
04.12.2010, 12:04     Вопрос по синтаксису
Ответ Создать тему
Опции темы

Текущее время: 09:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru