The Return statement in C/C++:
- C and C++ support return statements which are also called jump statements.
- It is used to return a value from the function or stop the execution of the function. For more information on return statements please refer article return statement in C/C++ with Examples.
There are two scenarios in which return statements are used:
Method 1. Inside the main function:
- In this case, the return statement stops the execution of the program, and 0 or 1 will denote the execution status.
- These status codes are just used as a convention for a long time in C language because the language does not support the objects and classes, and exceptions.
- return 0: A return 0 means that the program will execute successfully and did what it was intended to do.
- return 1: A return 1 means that there is some error while executing the program and it is not performing what it was intended to do.
Important characteristics of the return statement:
- If exit with a status other than 0 then, print an error message to stderr.
- There are different conventions depending on the operating system about return codes.
- Operating System may itself terminate the program with specific exit status codes if some invalid operations are performed.
Below is a program to illustrate the use of return 0 and return 1 inside the main function:
C++
// C++ program to divide two numbers #include <iostream> using namespace std; // Driver Code int main() { // Given integers int a = 5, b = 0; if (b == 0) { // The below line is used to print // the message in the error window // fprintf(stderr, "Division by zero" // " is not possible."); // Print the error message // as return is -1 printf ( "Division by zero is" " not possible." ); return -1; } // Else print the division of // two numbers cout << a / b << endl; return 0; } |
Division by zero is not possible.
Method 2. Inside the user-defined function:
- C++ treats boolean as a completely separate data type that has only 2 distinct values i.e., true and false.
- The values 1 and 0 are of type int and are not implicitly convertible to boolean that means:
- return 0: returning false from a function.
- return 1: returning true from a function.
Below is a program to illustrate the use of return 0 and return 1 inside the user-defined function:
C++
// C++ program to demonstrate the use // of return 0 and return 1 inside // user-defined function #include <iostream> using namespace std; // Utility function returning 1 or // 0 based on given age int checkAdultUtil( int age) { if (age >= 18) return 1; else return 0; } // Function to check for age void checkAdult( int age) { // Checking on the basis // of given age if (checkAdultUtil(age)) cout << "You are an adult\n" ; else cout << "You are not an adult\n" ; } // Driver Code int main() { // Given age int age = 25; // Function Call checkAdult(age); return 0; } |
You are an adult
Conclusion:Use-case return 0 return 1 In the main function return 0 in the main function means that the program executed successfully. return 1 in the main function means that the program does not execute successfully and there is some error. In user-defined function return 0 means that the user-defined function is returning false. return 1 means that the user-defined function is returning true.