What is the '-->' operator in C/C++?
Solution 1
--> is not an operator. It is in fact two separate operators, -- and >.
The code in the condition decrements x, while returning x's original (not decremented) value, and then compares the original value with 0 using the > operator.
To better understand, the statement could be written as follows:
while( (x--) > 0 )
Solution 2
Or for something completely different... x slides to 0.
while (x --\
\
\
\
> 0)
printf("%d ", x);
Not so mathematical, but... every picture paints a thousand words...
Solution 3
That's a very complicated operator, so even ISO/IEC JTC1 (Joint Technical Committee 1) placed its description in two different parts of the C++ Standard.
Joking aside, they are two different operators: -- and > described respectively in §5.2.6/2 and §5.9 of the C++03 Standard.
Solution 4
x can go to zero even faster in the opposite direction in C++:
int x = 10;
while( 0 <---- x ) { printf(“%d ”, x); }
8 6 4 2
You can control speed with an arrow!
int x = 100;
while( 0 <-------------------- x ) { printf(“%d ”, x); }
90 80 70 60 50 40 30 20 10
Solution 5
It's equivalent to
while (x-- > 0)
x-- (post decrement) is equivalent to x = x-1 (but returning the original value of x), so the code transforms to:
while(x > 0) {
x = x-1;
// logic
}
x--; // The post decrement done when x <= 0