sparknotes
What Are Pointers?
Terms
Address
-
The numbered location of a place in memory. An address of a
certain piece of memory is used by the computer to identify
each piece and locate it quickly, just as the postal address of
a house is used to help quickly identify it to the postman.
Array
-
A data structure that groups a number of data elements of the
same type together into a sequential list in memory.
Binary Notation
-
For most math in every day life, humans use decimal notation,
meaning that each digit in a number can be from 0 to 9 (decimal
means 10, or 10 possible numbers for each digit). Computers,
however, use binary notation to represent a number, binary
meaning 2. This means that each digit can be one of two
possible numbers, a 0 or a 1. This works well for a computer
as it can represent each digit as a switch that can be either
on or off, on being a 1, and off being a 0.
Compile
-
When programmers write code, they often write it in a
high-level language like C or C++. The computer, however,
cannot understand this code as is. The computer can only
understand machine code, 0's and 1's that tell the computer
exactly what instructions to carry out. In order to convert
from the high-level code written by the programmer to the
machine code the computer can use, the user must run the
high-level code through a compiler, an application that does
the translation. This process is referred to as compiling.
Crashing
-
The operating system is very protective of the computer and all
applications running on it (or at least it should be). If an
application attempts to do something that doesn't make any
sense or that might harm another program, the operating system
will most likely shut down the offending program. This
unexpected shutting down is referred to as crashing. An
application will normally crash due to something unexpected
that occurred, be it an error in the programming of that
application, a memory problem, a disk access problem, etc.
Depending on the operating system running, sometimes the
crashing of an application will only affect that one
application, and sometimes it will affect other applications
(or even the operating system itself) running on the computer.
Declare
-
To declare a variable or a function is to tell the computer
that you intend to use the function or variable being declared.
The computer sets aside the resources needed to provide the
things being declared. In most high-level languages, like
C/C++, variables must be explicitly declared before they can
be used, while in others, like lisp and perl, declaration is
done implicitly (without being specifically programmed in).
Decimal Notation
-
Decimal notation, or base 10, is the method of writing down
numbers that humans use for most everyday purposes. Decimal
means 10, meaning that when we write a digit in a number it can
be one of 10 possible digits, anything from a 0 to a 9.
Dereference
-
A pointer stores an address of a location in memory. To get at what
that value contains, we need to dereference the pointer, meaning we
need to go to that location and get what is there.
Hexadecimal Notation
-
Like decimal notation and binary notation, hexadecimal notation
is another way of writing numbers. Hex is base 16, meaning
that each digit can be one of 16 possibilities, 0 through 9 and
A through F. Hexadecimal numbers are normally written with a
"0x" in front of them to inform the reader that it is in fact a
hexadecimal number.
Memory
-
Memory is hardware that can store information. Memory can
usually store much less information than a disk drive but is
much faster to access. When programmers store data in
variables or dynamically allocated space, this data resides in
memory.
Pointers
-
Pointers are variables that store addresses, memory locations.
Pointer Arithmetic
-
The process of adding or subtracting an integer to or from a
pointer to obtain the address of another piece of memory.
Pointer arithmetic can also be used to subtract one pointer
from another in order to determine how many variables lie
between the addresses they store.
Segmentation Fault
-
When a program tries to access a piece of memory that it
doesn't have a right to access, the operating system will do
everything it can to prevent trouble trouble arising from this
illegal access. Often, it will attempt to shut the program
down, resulting in the program crashing. The process of
accessing an invalid piece of memory is often referred to as
seg faulting, or causing a segmentation fault. Often, the term
"seg fault" is used synonymously with "crashing," as in "My
program just seg faulted."




