In many C++ IDE's and compilers, when it generates the main function for you, it looks like this:
int main(int argc, char *argv[])
When I code C++ without an IDE, just with a command line compiler, I type:
int main()
without any parameters. What does this mean, and is it vital to my program?
Best Answer
argv
andargc
are how command line arguments are passed tomain()
in C and C++.argc
will be the number of strings pointed to byargv
. This will (in practice) be 1 plus the number of arguments, as virtually all implementations will prepend the name of the program to the array.The variables are named
argc
(argument count) andargv
(argument vector) by convention, but they can be given any valid identifier:int main(int num_args, char** arg_strings)
is equally valid.They can also be omitted entirely, yielding
int main()
, if you do not intend to process command line arguments.Try the following program:
Running it with
./test a1 b2 c3
will output