Definition
argv
and argc
are how command line arguments are passed tomain()
in C and C++.
argc
will be the number of strings pointed to by argv
. 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) and argv
(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.
Practice
#include <stdlib.h>
int main(int argc, char* argv[])
{
printf("Have %d arguments", argc);
for (int i = 0; i<argc; ++i) {
printf("%s \n", argv[i]);
}
}
Provide arguments: a1 b2 c3
output is:
Have 4 arguments
./Test // the full path to the Test project
dsfds
sdf
3
Program ended with exit code: 0