- An array is used to store homogeneous data, i.e. data of the same type.
- All the elements of an array have the same name, i.e. the array name. They are distinguished on the basis of their locations in the array. Locations are specified by using an integer value known as an index or a subscript.
- Arrays are also known as indexed variables or subscripted variables.
- Array index in C starts with 0.
- C does not provide array index out-of-bound check.
- Arrays are stored in contiguous (i.e. continuous) memory locations.
- Arrays are classified as single-dimensional arrays and multi-dimensional arrays.
- Subscript operator is used to access the elements of an array.
- The array name refers to the address of the first element of the array and is a constant object.
- An array cannot be assigned to or initialized with another array.
- If an array is equated with another array, it always evaluates to false.
- A pointer is a variable that holds the address of a variable or a function.
- Restricted arithmetic can be applied on pointers. Arithmetic on pointers is governed by pointer arithmetic.
- Addition of two pointers, addition of a float or a double value to a pointer, application of multiplication and division operators on pointers are not allowed.
- void pointer is a generic pointer and can point to any type of object.
- Dereferencing a void pointer and applying pointer arithmetic to it is not allowed.
- Null pointer is a special pointer that does not point anywhere.
- Dereferencing a null pointer leads to run time error.
- An n-D array is an array of (n-1)-D arrays.
- The expression of form E1[E2] is implicitly converted to an expression of the form *(E1+E2).
- In C language, multi-dimensional arrays are stored in the memory by using row major order of storage.