Data types in Solidity
Solidity data types can broadly be classified in the following two types:
- Value types
- Reference types
These two types in Solidity differ based on the way they are assigned to a variable and stored in EVM. Assigning a variable to another variable can be done by creating a new copy or just by coping the reference. Value types maintains independent copies of variables and changing the value in one variable does not effect value in another variable. However, changing values in reference type variables ensures that anybody referring to that variables gets updates value.
Value types
A type is referred as value type if it holds the data (value) directly within the memory owned by it. These types have values stored with them, instead of elsewhere. The same is illustrated in following diagram. In this example, a variable of data type unsigned integer (uint) is declared with 13 as its data(value). The variable a has memory space allocated by EVM which is referred as 0x123 and this...