The name of a variable is completly independent from it's use, although they can be associated. argc is just a name for a variable that holds a integer. argv is in this case an array of char pointers
Originally Posted by paper-pant
You could have
Both those name would be perfectly aceptable. What's important is what they hold.
int main(int numberofargumentstheusertyped, char *argumentstheusertyped);
So cout is just a name of another variable, or object, that outputs text.
The '*' and '' seem to be a bit more advanced than what you know...