numbers[i] < 500

is a conditional (true or false) that evaluates to 1 or 0 (in C)

Therefore smlen has either a 0 or a 1 added to it's value .. equivilent to only adding 1 if True.

[deleted]