The return value is the exit code of your program, the shell (or any other
application that ran it) can read and use it.
The 0 exit code is a widely accepted convention for 'OK the program execution
was successfull'. And for non-zero numbers, it conventionally means the
program didn't execute successfully or there is an error.
The return value of main() becomes the exit status of the process.
Traditionally, an exit status of zero usually means “OK,”
while any non-zero value indicates some kind of error.
This is analogous with how many system calls likewise return zero
or an error code.