A pointer is essentially the same as a memory address. The main difference between these two concepts is that a memory address is "untyped" (i.e., it can refer to any sort of variable), but a pointer always has an associated data type. For example, char* (pronounced "char star"), means "pointer to a char. To say "a variable points to a memory location" is almost exactly the same as saying "a variable's value is the address of a memory location". In the specific case of a variable of type char*, to say "the char* x points to a C string" is equivalent to saying "x contains the address of the first byte of the C string". Technically, a pointer does have some properties that differ from those of a memory address. However, in our use of pointers, the differences between a pointer and a memory address will never matter. Also see array.
Pop means "remove the top value from a stack".
The keyword private is an access specifier that denies nonmember functions access to member functions and member variables of its class.
A program is a set of instructions specifying the solution to a set of problems, along with the data used by those instructions.
The program counter is a dedicated register that holds the address of the next instruction to be executed. During a function call, a call instruction pushes the contents of the program counter on the stack so that the called function can return to the calling function when it is finished executing.
Programming is the art and science of solving problems by the following procedure:
The keyword public is an access specifier that allows nonmember functions access to member functions and member variables of its class.
Push means "add another value to a stack".