Home Segments Index Top Previous Next

596: Mainline

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.