char** argv y char* argv[] funcionan de la misma manera (supongo que sabes algo de arreglos, bien, entonces sabes que una variable del tipo array apunta a la primer posición del arreglo (es un puntero))
Un ejemplo. Supongamos que tienes este programa:
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for(i = 0; i < argc; i++) {
printf("Parámetro %d: %s\n", i
, argv
[i
]); }
return 0;
}
Como te dije, argc contiene la cantidad de parámetors pasados por línea de comandos y argv guarda justamente esos parámetros de tipo string en cada una de sus posiciones.
Lo que hace este programa entonces es contar la cantidad de parámetros pasados por parámetro (incluyendo también el nombre del programa).
Entonces, si vos compilás este programa y vas al cmd si estás en windows (o a la terminan en Linux) puedes ejecutarlo:
miProgramaContadorDeParametros.exe primerParametro segundoParametro
o en Linux
./miProgramaContadorDeParametros primerParametro segundoParametro
La salida por pantalla entonces serán justamente tus parámetros (primerParametro segundoParametro).
Estos son los parámertos que cuentan, los que el usuario les pasa por línea de comandos al ejecutar el programa.
Espero que se haya entendido..y que no haya batido tanta fruta