More specifically, argv is an array of char*'s. Which means that when your program is called Bob.exe, and it's located in the C:/ directory and you call it with 2 arguments respectively called Lolol and Foo: C:/Bob.exe Lolol Foo
argc equals 3
argv[0] equals "C:/Bob.exe"
argv[1] equals "Lolol"
argv[2] equals "Foo" Note how argv[0] always equals the full directory and executable name of the program being executed.
Note how argv[0] equals the command by which the program was called.
RE-EDIT:
Forgot the main part of the question (What do they stand for):
I believe they are shorter ways to write: argument count argument valuesargument vector
Although I'm not sure about the latter.
Changed some of my mistake's based on m4ster r0shi's advice.
Sohguanh is right & so is Kyon except for the fact that argv[0] has the full directory & executable name of the program being executed which is in-correct. argv[0] only has the program name and does not include the complete path for the program. You may run the following program in *NIX or Windows to verify the same. This program prints the individual command line arguments on a separate line. If you name the program as "command" and pass "1", "2" and "3" as arguments, you will get the following output: