I can't understand what the following code is doing on s
:
if(!s--)
s
is an int
I can't understand what the following code is doing on s
:
if(!s--)
s
is an int
Actually, it's misleading.
You are testing is s
is different from 0 (with if (!s)
). And then, afterward, whatever the result is, you're decreasing it.
So, it's two different operations. It could be written this way :
if (!s)
{
s--;
//...
}
else
{
s--;
}
!
is called negation
operator. It is a logical operator.
See the wikipedia entry here.
if(!s--)
The order in which it executes
s
is 0
or not , if s
is 0
, if
condition is success [thanks to the !
operator], otherwise, failure. s
by one unit.if
condition, continue the execution [code under if
condition, or next block of code].