O que significa em argc, char * argv []?

em muitos IDE e compiladores de C++, quando gera a função principal para si, parece-se com isto: int main(int argc, c ... de comandos, eu digito: int main() sem quaisquer parâmetros. O que isso significa, e é vital para o meu programa?