Compile the main program into an executable file called calc. Run the resulting calc program with several different choices of command line parameters. It means that argv is an array of pointers to characters. In fact, each of these is a pointer to a dynamic array of characters. That contains a pointer to a dynamic array of characters that contains the actual command that was typed.
Most programs require a certain number of command line parameters.
This is a succinct message describing how calc is supposed to be used. The first argument, argc, is the value of argc from the main program. The second argument, right, is the correct number of arguments that this program is supposed to have. The third argument, usage, is a string which is a suscinct usage message for the program. But if argc differs from right, then the function prints the message and halts the program.