return statement in C/C++ with Examples

Pre-requisite: Functions in C/C++

The return statement returns the flow of the execution to the function from where it is called. This statement does not mandatorily need any conditional statements. As soon as the statement is executed, the flow of the program stops immediately and return the control from where it was called. The return statement may or may not return anything for a void function, but for a non-void function, a return value is must be returned.

Syntax:



return[expression];

There are various ways to use return statements. Few are mentioned below:

  1. Methods not returning a value: In C/C++ one cannot skip the return statement, when the methods are of return type. The return statement can be skipped only for void types.
    • Not using return statement in void return type function: When a function does not return anything, the void return type is used. So if there is a void return type in the function definition, then there will be no return statement inside that function (generally).

      Syntax:

      void func()
      {
          .
          .
          .
      }
      

      Example:

      C

      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      // C code to show not using return
      // statement in void return type function
        
      #include <stdio.h>
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
        
          return 0;
      }

      chevron_right

      
      

      C++

      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      // C++ code to show not using return
      // statement in void return type function
        
      #include <iostream>
      using namespace std;
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
        
          return 0;
      }

      chevron_right

      
      

      Output:

      Welcome to GeeksforGeeks
      
    • Using return statement in void return type function: Now the question arises, what if there is a return statement inside a void return type function? Since we know that, if there is a void return type in the function definition, then there will be no return statement inside that function. But if there is a return statement inside it, then also there will be no problem if the syntax of it will be:

      Correct Syntax:

      void func()
      {
          return;
      }
      

      This syntax is used in function just as a jump statement in order to break the flow of the function and jump out of it. One can think of it as an alternative to “break statement” to use in functions.

      Example:

      C

      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      // C code to show using return
      // statement in void return type function
        
      #include <stdio.h>
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
        
          // void method using the return statement
          return;
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
          return 0;
      }

      chevron_right

      
      

      C++

      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      // C++ code to show using return
      // statement in void return type function
        
      #include <iostream>
      using namespace std;
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
        
          // void method using the return statement
          return;
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
          return 0;
      }

      chevron_right

      
      

      Output:

      Welcome to GeeksforGeeks
      

      But if the return statement tries to return a value in a void return type function, that will lead to errors.

      Incorrect Syntax:


      void func()
      {
          return value;
      }
      

      Warnings:

      warning: 'return' with a value, in function returning void
      

      Example:

      C

      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      // C code to show using return statement
      // with a value in void return type function
        
      #include <stdio.h>
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
        
          // void method using the return
          // statement to return a value
          return 10;
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
          return 0;
      }

      chevron_right

      
      

      C++

      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      // C++ code to show using return statement
      // with a value in void return type function
        
      #include <iostream>
      using namespace std;
        
      // void method
      void Print()
      {
          printf("Welcome to GeeksforGeeks");
        
          // void method using the return
          // statement to return a value
          return 10;
      }
        
      // Driver method
      int main()
      {
        
          // Calling print
          Print();
        
          return 0;
      }

      chevron_right

      
      

      Warnings:

      prog.c: In function 'Print':
      prog.c:12:9: warning: 'return' with a value, in function returning void
        return 10;
               ^
      
  2. Methods returning a value: For methods that define a return type, the return statement must be immediately followed by the return value of that specified return type.

    Syntax:

    return-type func()
    {
        return value;
    }
    

    Example:

    C

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // C code to illustrate Methods returning
    // a value using return statement
      
    #include <stdio.h>
      
    // non-void return type
    // function to calculate sum
    int SUM(int a, int b)
    {
        int s1 = a + b;
      
        // method using the return
        // statement to return a value
        return s1;
    }
      
    // Driver method
    int main()
    {
        int num1 = 10;
        int num2 = 10;
        int sum_of = SUM(num1, num2);
        printf("The sum is %d", sum_of);
        return 0;
    }

    chevron_right

    
    

    C++

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // C++ code to illustrate Methods returning
    // a value using return statement
      
    #include <iostream>
    using namespace std;
      
    // non-void return type
    // function to calculate sum
    int SUM(int a, int b)
    {
        int s1 = a + b;
      
        // method using the return
        // statement to return a value
        return s1;
    }
      
    // Driver method
    int main()
    {
        int num1 = 10;
        int num2 = 10;
        int sum_of = SUM(num1, num2);
        cout << "The sum is " << sum_of;
        return 0;
    }

    chevron_right

    
    

    Output:

    The sum is 20
    


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.