Now you can understand which data types you need for the
argument_count
parameter and the argument_array
parameter. Specifying the
data type for argument_count
is straightforward, of course, as
argument_count
is just an integer:
main (int argument_count, ...) {...}
Specifying the data type for argument_array
is a bit tricky,
however. It would be wrong to specify char argument_array
, for that
would mean that argument_array
is just a single character. It would
be almost as wrong to specify char *argument_array
, for that would
mean that argument_array
is just a pointer to a character. What you
need is an extra asterisk, producing char **argument_array
, for that
must be a pointer to a pointer to a character. Inasmuch as each object
pointed to can always be the first element in an array of such objects, you
can also say that char **argument_array
establishes that the value
of argument_array
is the address of an array of addresses of
character strings.