A variable is nothing but a name given to a storage area (like a box) that our programs can manipulate. Each variable in C has a specific data type, which determines the size of the variable's memory; the range of values that can be stored within that memory; and the set of operations that can be applied to the variable.
The name of a variable can be composed of letters, digits, and the underscore character. It must begin with either a letter or an underscore. Upper and lowercase letters are distinct because C is case-sensitive.
A boolean holds one of two values, true or false.
A byte stores an 8-bit unsigned number, from 0 to 255.
Integers are the primary data-type for number storage. It ranges between -32 768 to 32 767.
Unsigned integers are always positive numbers and range between 0 and 65 535
More details and data types can found in this page https://www.tutorialspoint.com/arduino/arduino_data_types.htm.
Each variable create has a scope, which means a area/zone where the variable is known. This area is defined by the curly brackets {}.
For example any variable created inside a function exists only inside that function. So every time a function is created the variable is recreated. In the code below 3 different variables box are created in each function setup() and loop().
To have variables which are available in the whole program, then they should be defined outside the function, usually before the setup() function.