void main(int argc, char* argv[])The parameters to the main procedure are used to access the argument list supplied with the command to run the program. Why? The UNIX philosophy of passing substantial instructions via the command line, in order to reserve input and output for pipelining of data from one command (process) to another.
if then else for while switch {} to introduce a blockWatch the binding of statements, blocks are not part of the statement, they have to be added.
= == < > & && | || ~ ^ and so on.Watch the difference between assignment = and the test for equality ==.
See King Chapter 20 for specific details.
In class I do not expect you to understand the Gray-Code program in all its fine details. It is used only as a conversation piece so that I can talk about components of C-programs. In particular I should mention: