The preprocessor directive needs to pull data elsewhere before the following piece of code can operate without any errors. In this case specifically our preprocessor directive line will pull a preexisting code that has functions allowing us to print data onto our terminal.
declaration statements: (i think) will decide the existance of something, it can decide that for instance a variable with an integer will be created with a preexisting value
In terms of our game it will create data that our expressions will pull from for reference
Expression statements: will ask our data to perform a task. (std::cout <<) means “print x to terminal”, while a = 2 means “the value a must become 2”, rather than “the value a is 2”
The main function will tell you what needs to happen once this function is called (allowing things to come beforehand), it will also end (return 0) which tells you that the code run successfully