Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: XorNet en 19 Julio 2013, 02:25 am



Título: [Pregunta] ¿Para qué sirven los parámetros del "int main()"?
Publicado por: XorNet en 19 Julio 2013, 02:25 am
Bueno mi pregunta es, para qué sirven estas cosas:
Código
  1. int main(int argc, char *argv[])
  2.  

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


Título: Re: [Pregunta] ¿Para qué sirven los parámetros del "int main()"?
Publicado por: dRak0 en 19 Julio 2013, 02:39 am
Para introducir datos por consola.


Título: Re: [Pregunta] ¿Para qué sirven los parámetros del "int main()"?
Publicado por: ralymontes en 19 Julio 2013, 05:14 am
Código:
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.


Título: Re: [Pregunta] ¿Para qué sirven los parámetros del "int main()"?
Publicado por: Caster en 19 Julio 2013, 11:58 am
Agrc es el numero de parametros, y agrv son los parametros.

Saludos


Título: Re: [Pregunta] ¿Para qué sirven los parámetros del "int main()"?
Publicado por: rir3760 en 19 Julio 2013, 18:15 pm
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:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.   int i;
  7.   char **p;
  8.  
  9.   puts("Lista de argumentos (Forma 1):");
  10.   for (i = 0; i <= argc; i++)
  11.      printf(
  12.         "argv[%d] == \"%s\"\n",
  13.         i,
  14.         argv[i] != NULL ? argv[i] : "NULL"
  15.      );
  16.  
  17.   puts("----");
  18.  
  19.   puts("Lista de argumentos (Forma 2):");
  20.   for (p = argv; p <= argv + argc; p++)
  21.      printf(
  22.         "argv[%ld] == \"%s\"\n",
  23.         (long int) (p - argv),
  24.         *p != NULL ? *p : "NULL"
  25.      );
  26.  
  27.   return EXIT_SUCCESS;
  28. }

Un saludo