return statement means to return control back to the calling program. It totally depends on programmer what to return from the fuction and how to use the that return value in the called program.
exit() is a system call used to terminate a process completely and the argument in it is basically exit status which it give to its parent process.
exit(0) is representative for successful termination of process also equal to exit(EXIT_SUCCESS).
exit(1) is to report error, also equal to exit(EXIT_FAILURE).
Only the lowest 8 bits of the exit argument is given to parent process as its exit status.
While creating program with the help of different functions this is very common where the return value of functions is given according ly need of other functions .
But in term of single function(suppose a hello program)
#include
Int main() { Printf("hello/n"); return 0; }
Here 'return 0' value of main function is the exit code of your main function ,which describe s the successful execution of your program .That means if your program has no errors then after running of program the 'return 0' goes to the kernal where kernal understands return 0 and then it closes the program..That's it