1.1 Our First Program1.2 Variables1.2.1 Constants1.2.2 Literals1.2.3 Non-narrowing Initialization1.2.4 Scopes1.3 Operators1.3.1 Arithmetic Operators1.3.2 Boolean Operators1.3.3 Bitwise Operators1.3.4 Assignment1.3.5 Program Flow1.3.6 Memory Handling1.3.7 Access Operators1.3.8 Type Handling1.3.9 Error Handling1.3.10 Overloading1.3.11 Operator Precedence1.3.12 Avoid Side Effects!1.4 Expressions and Statements1.4.1 Expressions1.4.2 Statements1.4.3 Branching1.4.4 Loops1.4.5 goto1.5 Functions1.5.1 Arguments1.5.2 Returning Results1.5.3 Inlining1.5.4 Overloading1.5.5 main Function1.6 Error Handling1.6.1 Assertions1.6.2 Exceptions1.6.3 Static Assertions1.7 I/O1.7.1 Standard Output1.7.2 Standard Input1.7.3 Input/Output with Files1.7.4 Generic Stream Concept1.7.5 Formatting1.7.6 Dealing with I/O Errors1.8 Arrays, Pointers, and References1.8.1 Arrays1.8.2 Pointers1.8.3 Smart Pointers1.8.4 References1.8.5 Comparison between Pointers and References1.8.6 Do Not Refer to Outdated Data!1.8.7 Containers for Arrays1.9 Structuring Software Projects1.9.1 Comments1.9.2 Preprocessor Directives1.10 Exercises1.10.1 Age1.10.2 Arrays and Pointers1.10.3 Read the Header of a Matrix Market File