Что такое оператор “-->” в С++?

207
16 июня 2018, 15:30

После прочтения Hidden Features и Dark Corners of С++/STL на comp.lang.c++.moderated, я был полностью удивлен тому что следующий фрагмент, скомпилировался и работает в Visual Studio 2008, так и g++ 4.4.

Здесь код:

#include <stdio.h>
int main()
{
    int x = 10;
    while (x --> 0) // x goes to 0
    {
        printf("%d ", x);
    }
}

Я бы предположил, что это C, так как он работает Visual Studio 2008 и в GCC? Где это определено в стандарте языков и откуда такой оператор взялся?

Этот вопрос, перевод вопроса https://stackoverflow.com/questions/1642028/what-is-the-operator-in-c

Answer 1

--> не является оператором. Это фактически два отдельных оператора, -- и >.

С начало происходит операция -- (минус единица от x) после сравнивание x с 0.

Чтобы лучше понять, выражение можно записать следующим образом:

while( (x--) > 0 )

x может идти до нуля еще быстрее в обратном направлении:

int x = 10;
while( 0 <---- x )
{
   printf("%d ", x);
}
результат: 8 6 4 2

Вы можете управлять скоростью со стрелкой!

int x = 100;
while( 0 <-------------------- x )
{
   printf("%d ", x);
}
результат: 90 80 70 60 50 40 30 20 10

;)

READ ALSO
Получение arp таблицы

Получение arp таблицы

Как получить arp-таблицу текущего хоста или как найти mac-адрес по ip-адресу с помощью boostasio? Нужно что-то типа SendARP функции, только кроссплатформенной

178
c++ strcpy ошибка [дубликат]

c++ strcpy ошибка [дубликат]

На данный вопрос уже ответили:

219
Нужна помощь по структурам и строкам c++

Нужна помощь по структурам и строкам c++

?)Есть вот такое задание

212