 In this video, we are going to explain the concept of memory in direction. Now, memory in direction assumes the following. First, let's think of a memory and we're going to represent it such that each cell we're going to draw in this memory is actually made out of four bytes. So this cell over here contains four bytes. Let's assume that it is in position 100 and it contains the number 3681. Now this with all memories what we have there stored are values and each of these cells can be referred to with an address. We're going to make one more assumption, which is that the addresses of this memory are represented using numbers encoded with four bytes. Okay, with these assumptions what we can state is that 100 is the address at which the value 3681 is stored or simply 100 is the address of value 3681. Fairly trivial and this is what we have been seeing so far. Now the interaction appears because at some other location in memory, let's say for example position 200, we can store the natural number 100 itself is a number and therefore can be stored there with four bytes. Now what is happening is that this 100 is the address of the data. Therefore what we can say is that 200 is the address of not the value because we are not accessing directly the value but the address of the value 3681. So we can see here is that rather than accessing directly to this data what we are making is an indirection. Instead of accessing directly 3681 in this position 100, we go first to position 200 and what we find there is not the data but the address of the data and we make the indirection and we go to the final destination in which we find the data. This is what is called an indirection. Now this indirection can actually be done multiple times and this is what gets a little bit confusing. So the same rationale can be applied again to the number 200. So for example in position 300 we can store the value 200. Now what we can say is 300 is an address and in fact is the address of and we write what we wrote up there of the address of the address of the value 3681. So this is called a multiple indirection because again rather than accessing the data directly what we do is first we go to position 300 we find the address 200, the value 200 which is itself an address and then we make a double indirection until we finally reach from position 200 we obtain the value 100 and we reach eventually the value. Now one final thing about indirections they may seem totally counterintuitive. However, the indirection is a mechanism that is used very, very, very often when using programming languages. The problem is that these programming languages hide these details but inside underneath they are using indirections.