Objects in C must have exactly one definition, and they may have mutiple external declarations.


Definition: occurs in only one place. specifies the type of an object; reserves storage for it; it is used to create new objects.

example: int my_array[100];

Declaration: can occur multiple times. describes the type of an object; is used to refer to objects defined elsewhere(e.g., in another file)

example: extern int my_my_array[];


difference between array and pointer.