/*
 * @topic T0M270 C++ crash course samples 2016
 * @brief This is not a C++ source file. This file demonstrates what C++ compiler thinks about the types of expressions that we use in our programs.
*/

int x; // C++ declaration

	x       // expression: a variable
	int     // type of x is "int"

	&x      // expression: an address of a variable
	int*    // type of &x expression is "pointer to int"


int* p = &x; // C++ declaration

	p       // expression: pointer variable
	int*    // the type is "pointer to int"

	*p      // expression: dereferenced pointer variable
    *(int*) // the type is...
	int     // a plain vanilla "int"

	p = &x      // assignment of new address to the pointer
	int* = int* // works fine as both sides of = have the same type


int iarray[ 10 ];   // C++ declaration of the "array of ten integers"

	iarray[ 0 ]     // array element is accessible by subscript [idx]
	int             // the type of array element is "int"

	&iarray[ 0 ]    // the address of array element
	int*            // the type is "pointer to int"













