¿Qué significa int argc, char *argv[]?
En muchos IDE's y compiladores de C++, cuando se genera la función principal para usted, se ve así:
int main(int argc, char *argv[])
Cuando codifico C++ sin un IDE, sólo con un compilador de línea de comandos, escribo:
int main()
sin ningún parámetro. ¿Qué significa esto, y es vital para mi programa?
475
3
argv
yargc
son la forma en que se pasan los argumentos de la línea de comandos amain()
en C y C++.argc
será el número de cadenas apuntadas porargv
. Esto será (en la práctica) 1 más el número de argumentos, ya que prácticamente todas las implementaciones antepondrán el nombre del programa a la matriz.Las variables se denominan
argc
(contador de argumentos) yargv
(vector de argumentos) por convención, pero se les puede dar cualquier identificador válido:int main(int num_args, char** arg_strings)
es igualmente válido.También pueden omitirse por completo, dando lugar a
int main()
, si no se pretende procesar los argumentos de la línea de órdenes.Pruebe el siguiente programa:
argc
es el número de argumentos que se pasan a su programa desde la línea de comandos yargv
es la matriz de argumentos.Puedes hacer un bucle a través de los argumentos sabiendo el número de ellos como:
Los parámetros de
main
representan los parámetros de la línea de comandos proporcionados al programa cuando se inició. El parámetroargc
representa el número de argumentos de la línea de comandos, ychar *argv[]
es una matriz de cadenas (punteros de caracteres) que representan los argumentos individuales proporcionados en la línea de comandos.