Skip to content
Related Articles

Related Articles

What does main() return in C and C++?
  • Difficulty Level : Basic
  • Last Updated : 19 Sep, 2019

C

According to coding standards, a good return program must exit the main function with 0. Although we are using void main() in C, In which we have not suppose to write any kind of return statement but that doesn’t mean that C code doesn’t require 0 as exit code. Let’s see one example to clear our thinking about need of return 0 statement in our code.

Example #1 :




#include <stdio.h>
  
void main()
{
  
    // This code will run properly
    // but in the end,
    // it will demand an exit code.
    printf("It works fine");
}
Output:
It works fine

Runtime Error:



NZEC

As we can see in the output the compiler throws a runtime error NZEC, Which means that Non Zero Exit Code. That means that our main program exited with non zero exiting code so if we want to be a developer than we make these small things in our mind.

Correct Code for C :




#include <stdio.h>
  
int main()
{
  
    // This code will run properly
    // but in the end,
    // it will demand an exit code.
    printf("This is correct output");
    return 0;
}
Output:
This is correct output

Note: Returning value other than zero will throw the same runtime error. So make sure our code return only 0.

Example #2 :




#include <stdio.h>
  
int main()
{
  
    printf("GeeksforGeeks");
    return "gfg";
}
Output:
It works fine

Runtime Error:

NZEC

Correct Code for C :






#include <stdio.h>
  
int main()
{
  
    printf("GeeksforGeeks");
    return 0;
}
Output:
GeeksforGeeks

C++

In case of C++, We are not able to use void keyword with our main() function according to coding namespace standards that’s why we only intend to use int keyword only with main function in C++. Let’s see some examples to justify these statements.

Example #3 :




#include <iostream>
using namespace std;
  
void main()
{
    cout << "GeeksforGeeks";
}
Compile Errors:
prog.cpp:4:11: error: '::main' must return 'int'
 void main()
           ^

Correct Code for C++ :




#include <iostream>
using namespace std;
  
int main()
{
    cout << "GeeksforGeeks";
    return 0;
}
Output:
GeeksforGeeks

Example #4 :




#include <iostream>
using namespace std;
  
char main()
{
    cout << "GeeksforGeeks";
    return "gfg";
}
Compile Errors:
prog.cpp:4:11: error: '::main' must return 'int'
 char main()
           ^
prog.cpp: In function 'int main()':
prog.cpp:7:9: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  return "gfg";
         ^

Correct Code for C++ :




#include <iostream>
using namespace std;
  
int main()
{
    cout << "GeeksforGeeks";
    return 0;
}
Output:
GeeksforGeeks
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 :