Punteros
19. Argumentos a main
Recodemos que main es una función y por lo tanto puede recibir argumentos.De hecho cuando Uds. abren con el Zinjai un archivo nuevo aparece:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
return 0;
}
Podemos ver que seguido de main hay valores que hasta el momento no habíamos prestado atención. Vamos ver un como cada uno de ellos.
- argc: cantidad de argumentos pasados al momento de ejecutar el programa, es un entero.
- *arg[]: es un puntero a un arreglo que contiene como elementos los argumentos, cada uno de los elementos es un chat.
Veamos un ejemplo este archivo se llama argumentos_a_main :
#include <iostream>
using namespace std;
/*
argc es un entero y contiene el numero de argumentos que se han introducido.
argv array de punteros a caracteres y almacena los valores pasados como argumentos.
*/
int main(int argc, char *argv[]) {
cout<<"cantidad de argumentos pasados:"<<argc<<endl;
for(int i=0;i<argc;i++)
cout<<"Argumento :"<<i<<" es : "<<argv[i]<<endl;
return 0;
}
La salida de ejecutar este archivo será:Esta línea que ejecuta el archivo con los argumentos pepe es un poco loco será:
Así que podemos ver que lo que va luego del nombre del programa puede ser pasado como argumento a main.