As you can see, the main() function does not contain the statement return 0;.
But the program can still execute normally, even though the main() function has been specified to return a value of int. I just don't understand why. Could you please explain it?
 
    
    - 555,201
- 31
- 458
- 770
 
    
    - 11
- 2
- 
                    3Please don't post images of text, least of all code. Copy-paste text *as text* into your question. – Some programmer dude Mar 04 '21 at 06:43
- 
                    3_As you can see, the `main()` function does not contain the statement `return 0;`..._ No, I can see a `return 0` at line 32 (inside `main()`. :| – brc-dd Mar 04 '21 at 06:48
- 
                    2@brc-dd Seems you're the only who looked at the image. – 273K Mar 04 '21 at 06:54
3 Answers
The main function is treated differently by the compiler. If there's no return 0; at the end then the compiler will implicitly add such a statement.
Note that this is only for the main function, you can't omit return statements in any other function.
 
    
    - 400,186
- 35
- 402
- 621
In your attached image the main function does have a return statement.
Anyways if you don't include a return statement for main, the compiler will do that for you implicitly during compilation process. Although it is a good practice that we include one!
Similarly, even if you don't have a default non-parameterized constructor, a compiler will also include one, with empty body.
 
    
    - 84
- 1
- 2
- 6
In C++ :
If control reaches the end of the main function, return 0; is executed.
which is equivalent to first leaving the function normally (which destroys the objects with automatic storage duration) and then calling std::exit with the same argument as the argument of the return. (std::exit then destroys static objects and terminates the program)
in C:
If the return statement is used, the return value is used as the argument to the implicit call to exit() (see below for details). The values zero and EXIT_SUCCESS indicate successful termination, the value EXIT_FAILURE indicates unsuccessful termination
 
    
    - 572
- 2
- 10
