[Pregunta] ¿Para qué sirven los parámetros del "int main()"?

Iniciado por XorNet, 19 Julio 2013, 02:25 AM

0 Miembros y 1 Visitante están viendo este tema.

XorNet

Bueno mi pregunta es, para qué sirven estas cosas:
Código (cpp) [Seleccionar]

int main(int argc, char *argv[])


Quien me explica claramente que son , para que sirven y qué ventaja tendría el usar esto?

dRak0


ralymontes

int main(int argc, char *argv[])

El entero argc guarda el numero de parámetros que introduces por consola al invocar el programa (incluyendo el nombre del programa), el segundo parámetro, es decir, el arreglo, es un arreglo de punteros a cadenas, cada posición del arreglo te guarda un puntero que apunta ( XD ) a cada parámetro introducido.

Saludos, Raly.

Caster

Agrc es el numero de parametros, y agrv son los parametros.

Saludos

rir3760

Es la definicion de la funcion main para procesar los argumentos pasados mediante la linea de comandos:

* argc es el numero de estos
* argv[0] es el nombre de la aplicacion o NULL.
* argv[1] .. argv[argc - 1] cada uno de los argumentos.
* argv[argc] siempre es NULL.

Esa lista se puede procesar de varias formas, dos de ellas una utilizando el parametro argc y otra mediante aritmetica de punteros:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   int i;
   char **p;
   
   puts("Lista de argumentos (Forma 1):");
   for (i = 0; i <= argc; i++)
      printf(
         "argv[%d] == \"%s\"\n",
         i,
         argv[i] != NULL ? argv[i] : "NULL"
      );
   
   puts("----");
   
   puts("Lista de argumentos (Forma 2):");
   for (p = argv; p <= argv + argc; p++)
      printf(
         "argv[%ld] == \"%s\"\n",
         (long int) (p - argv),
         *p != NULL ? *p : "NULL"
      );
   
   return EXIT_SUCCESS;
}


Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language