What does int argc, char *argv[] mean in C++?

The argc stands for argument count and argv stands for argument values. These are variables passed to main function when it starts executing. When we run a program we can give arguments to that program like:

$ ./a.out hello

Here hello is an argument to the executable. This can be accessed in your program.

Example Code

using namespace std;
int main(int argc, char** argv) {
   cout << "This program has " << argc << " arguments:" << endl;
   for (int i = 0; i < argc; ++i) {
      cout << argv[i] << endl;
   return 0;

When you compile and run this program like:

$ ./a.out hello people

This will give the output:

This program has 3 arguments