Question about arguments in Serial.print()

Hello, I'm using a code for RC522 and I've found this line:

Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");

The program works correctly but I'd like to know what exactly does this line.

I've found that it takes a byte from a string like "803C2933" and make it like "80 3C 29 33" but I don't know why.

"80" > "80 "
"3C" > "3C "
...

Could anybody help me? Thanks in advance.

Hi pevire. Read about the ternary (or conditional) operator "?" here: HERE.

Thank you, doubt solved.

I'm learning all by myself and this is something that I haven't found in the basic documentation of arduino.

Thanks again.

There's not much to the Arduino docs. It just describes the basics and the custom library stuff added by Arduino like digitalRead and digitalWrite. If you want a real reference then forget the word Arduino and look instead at the programming language it uses. It's called C++.