Arrays are collections of similar data elements stored in contiguous memory locations that can be individually accessed via an index. There are two types: single-dimensional arrays where elements are stored in one column, and multi-dimensional arrays where elements are stored in rows and columns. Arrays are declared with the data type, array name, and size, and elements are accessed using indexes that start at 0 up to size-1. Common array operations in C include inputting/outputting elements, finding sums/maximums, sorting, and performing operations on multi-dimensional arrays like matrix addition and multiplication.