argc is the number of arguments passed to your program
argv is an array of C strings with the value of the arguments passed to your program
argv[0] is always the name of your program.
You make command-line options like foobar arg1 arg2
But the arguments/parameters are not passed to main() directly. Instead, two parameters are passed, namely int argc and char *argv[].
argc (argument count) is an integer counting the number of arguments on the command line, including the name of the program itself. The one shown above has 3.
argv (argument vector) is a an array of pointers to character strings. In the case above, argv[0] will be the name foobar, argv[1] will be the first parameter, represented as a string.