Skip to content
Related Articles

Related Articles

return 0 vs return 1 in C++
  • Difficulty Level : Basic
  • Last Updated : 06 Jan, 2021

The Return statement in C/C++:

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;
}
Output:
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;
}
Output:
You are an adult

Conclusion:

Use-casereturn 0return 1
In the main functionreturn 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 functionreturn 0 means that the user-defined function is returning false.return 1 means that the user-defined function is returning true.
Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.
My Personal Notes arrow_drop_up
Recommended Articles
Page :