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.