Недавно увидел на ревью такой цикл:
for (std::size_t i = 0; i < sockets_number; ++i) {
i[sockets].connect(endpoint);
}
sockets
- это массив вида Socket sockets[sockets_number]
. Объясните, как это работает? Вроде бы должно быть sockets[i].connect(endpoint)
или я отстал от жизни?
К массиву можно обращаться посредством, например: 5[arr]
, это эквивалентно arr[5]
. Вот ещё примеры:
(1 + 3)[a]
– то же, что и a[1 + 3]
(a + 1)[2]
– то же, что и a[3]
arr[idx] ~ *(arr + idx) <-> *(idx + arr) ~ idx[arr]
Стандарт C: 6.5.2.1 Array subscripting
A postfix expression followed by an expression in square brackets [] is a subscripted designation of an element of an array object. The definition of the subscript operator [] is that E1[E2] is identical to (*((E1)+(E2))). Because of the conversion rules that apply to the binary + operator, if E1 is an array object (equivalently,apointer to the initial element of an array object) and E2 is an integer, E1[E2] designates the E2-th element of E1 (counting from zero).
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я пытаюсь написать свой первое клиент-серверное приложение, используя websocket и Tomcat 9 серверЭтот пример я нашел в интернете
Делал проставление печати в pdf-файле и столкнулся с проблемой, что если добавить в ячейку текст, который явно не помещается в своей строке,...
На данный вопрос уже ответили: