If you call your executable, for instance, with one of these
$ ./executable one foobar > program.exe one foobar
You get
argc == 3
argv[0] ==> "./executable" or "program.exe"
argv[1] ==> "one"
argv[2] ==> "foobar"
argv[3] == NULL
argv[2][0] == 'f'
argv[2][1] == 'o'
argv[2][2] == 'o'
argv[2][3] == 'b'
argv[2][4] == 'a'
argv[2][5] == 'r'
argv[2][6] == 0
1
solved Looking for explanation to argv[1][i] second array of pointers [duplicate]